Я хочу создать скрипт оболочки для автоматического резервного копирования базы данных MySQL. Позже я скопирую его в контейнер s3.
Я создал следующий скрипт оболочки:
#vim /home/ubuntu/backup/mysqlbackup.sh
#!/bin/bash
## Specify the name of the database that you want to backupbackup
# Database credentials
USER="user1"
PASSWORD="password"
HOST="hostname.compute.amazonaws.com"
DB_NAME="db1"
#Backup_Directory_Locations
BACKUPROOT="/home/ubuntu/backup"
TSTAMP=$(date +"%d-%b-%Y-%H-%M-%S")
S3BUCKET="s3://s3bucket"
#LOG_FILE="/home/ubuntu/backup/log/dump.log"
mysqldump -h <HOST> -u <USER> --database <DB_NAME> -p"$PASSWORD" > $BACKUPROOT/$DB_NAME-$TSTAMP.sql
Затем из командной строки я запускаю скрипт:
sudo bash -x ./mysqlbackup.sh
И он терпит неудачу, говоря мне:
ХОСТ: Нет такого файла или каталога
решение1
<HOST>
. <DB_NAME>
и т. д., являются просто заполнителями.
Их следует заменить реальными строками или расширениями переменных оболочки "$HOST"
и "$DB_NAME"
т. д. — точно так же, как вы это сделали с-p"$PASSWORD"
Сообщение об ошибке возникает из-за того, что <
и >
являются операторами перенаправления.