我想创建一个 shell 脚本来自动备份 MySQL 数据库。稍后我会将其复制到 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>
.<DB_NAME>
等,只是占位符。它们应该替换为实际的字符串或shell变量扩展
"$HOST"
,"$DB_NAME"
等等——就像您所做的那样-p"$PASSWORD"
错误消息是因为
<
并且>
是重定向运算符。