我创建了以下 shell 脚本来备份 MySQL DB,对其进行压缩,然后将其复制到 s3 存储桶中:
#vim /home/ubuntu/backup/mysqlbackup2.sh
#!/bin/bash
## Backup mysql DB, zip it and then copy it to s3 bucket
mysqldump -hhostname -uusername dbName -p'p@ssW0rd' > db.sql
if [ $? -le 1 ]
then
# zip the file and copy it s3 bucket
sudo gzip -9 db.sql
s3cmd put db.sql.gz s://mys3bucket/
else
echo "Fail to backup MySQL DB" >> "backup.log"
fi
它做的一切都很好,备份被复制到 s3 存储桶。但我无法理解 shell 脚本的输出:
我了解密码警告,但为什么显示:'[' 0 -le 1 ']'
?我的 if 条件有什么问题吗?
你的脚本:
'[' 0 -le 1 ']'
:这里的零表示备份命令成功,读取为“小于或等于”。是的,那些带有“+”的行向您展示了执行过程中的各个步骤,那是因为您-x
在执行 bash 脚本时使用了 in 选项。同样正如沙漠所指出的,应删除 sudo 和“-le”选项并分别更改为“-lt”。