zen*_*sys 7 mysql backup amazon-s3 pipe s3cmd
我想将压缩的 mysql 转储传输到 s3。
我试过:
mysqldump -u root -ppassword -all-databases | gzip -9 | s3cmd put s3://bucket/sql/databases.sql.gz
Run Code Online (Sandbox Code Playgroud)
但后来我得到:
ERROR: Not enough paramters for command 'put'
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点(在一行中)?
您缺少要开始备份的实际文件。
s3cmd put /backup_dir/somefile.sql.gz s3://bucket/sql/
Run Code Online (Sandbox Code Playgroud)
s3cmd 也采用两个基本参数:文件和要备份的存储桶。
其次,我不能相信以下内容,但它基本上用中间脚本做你想做的事情。基本上,使用以下内容创建一个 bak.sh 文件,然后该 shell 脚本将可以通过 bash 运行。(来源:http ://www.wong101.com/tech-cloud/configure-s3cmd-cron-automated-mysql-backup )
S3BUCKET="<bucketname>"
# Array of Databases
DBS=("<db1>" "<db2>" "<db3>" "<db4>")
for i in "${DBS[@]}"
do
DBNAME=$i
FILE=$DBNAME-`date "+%Y%m%d-%H%M"`.sql.gz
mysqldump $DBNAME -u[uname] -p[password] | gzip -9> /home/$FILE
#location of s3cmd may vary, modify if needed
/usr/bin/s3cmd --config /root/.s3cfg put /home/$FILE s3://$S3BUCKET/DBBackup-$DBNAME/ >> /var/log/mysqlback.log
sleep 5
rm /home/$FILE
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9806 次 |
| 最近记录: |