我想建立一個 shell 腳本來自動備份 MySQL DB。稍後我會將其複製到 s3 儲存桶。
我建立了以下 shell 腳本:
#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
它失敗了,告訴我:
HOST:沒有這樣的檔案或目錄
答案1
<HOST>
。<DB_NAME>
等等,只是佔位符。
它們應該被實際的字串或 shell 變數擴展等替換"$HOST"
-就像您所做的那樣"$DB_NAME"
-p"$PASSWORD"
該錯誤訊息是因為<
和>
是重定向運算子。