2017-09-19 75 views
2

我想使用cron作业在每日基础上创建数据库备份。AWS数据库备份RDS到S3通过Crontab(Cron Job)

我已经创建了一个用于数据库备份的批处理文件。以下是批处理文件代码。

#!/bin/bash 
SQLDUMP="$(date +'%Y%m%d%H%M').sql.gz" 

echo "Creating backup of database to $SQLDUMP" 
mysqldump --host 'myhost.com' -u 'root' -p 'password' --databases 'test' | gzip -9 > $SQLDUMP 

echo "Dump Zipped up" 

echo "Uploading zipped dump to the Amazon S3 bucket…" 

s3cmd put $BACKUPNAME s3://example.com/dbbackup/$BACKUPNAME 

echo "Removing the backup file $SQLDUMP" 
rm $BACKUPNAME 

echo "Done"  

但是数据库备份不能存储在S3上。

文件路径中:var /应用/电流/应用/ sqlbackup.sh

设置5个小时在crontab中:* 5 * * */bin/sh的/var/app/current/app/sqlbackup.sh

+0

这不是一个批处理文件。您应该将标签从批处理文件中更改为'bash'。 – sohaib

+0

你从cli运行'aws configure'并设置你的ssh用户访问S3? – McRed

+2

你还没有告诉我们什么是错的。 cron无法运行脚本? mysqldump是否失败? s3cmd上传失败? – jarmod

回答

3

可能您还没有在您的AWS服务器中设置s3cmd软件包。所以请检查以下所有设置。所以我认为你有帮助点:

Setup :- 1 
On CentOS/RHEL: # yum install s3cmd 
On Ubuntu/Debian: $ sudo apt-get install s3cmd 
On SUSE Linux Enterprise Server 11: 
    # zypper addrepo http://s3tools.org/repo/SLE_11/s3tools.repo 
    # zypper install s3cmd 

Setup :- 2 
Install Latest s3cmd using Source 

$ wget http://ufpr.dl.sourceforge.net/project/s3tools/s3cmd/1.6.1/s3cmd-1.6.1.tar.gz 
$ tar xzf s3cmd-1.6.1.tar.gz 

Now install it using below command with source files. 
$ cd s3cmd-1.6.1 
$ sudo python setup.py install 

Configure s3cmd Environment 
# s3cmd --configure 

用Enter键输入新的值或接受括号中的默认值。有关所有选项的详细说明,请参阅用户手册。

有关详细信息,请查看以下链接: - https://tecadmin.net/install-s3cmd-manage-amazon-s3-buckets/#

批处理文件检查: - 文件名sqlbackup.sh

#!/bin/bash 
SQLDUMP="$(date +'%Y%m%d%H%M').sql.gz" 
SQLDUMPPATH="/backupdb/$SQLDUMP" 
mysqldump -pPASSWORD -u root -h HOST.amazonaws.com database_name | gzip -9 > $SQLDUMPPATH 
s3cmd put $SQLDUMPPATH s3://S3NAME/dbbackup/$SQLDUMP 
echo "Removing the backup file $SQLDUMP" 
rm $SQLDUMPPATH 
echo "WooHoo! All done" 
+0

这对我有帮助。 ..谢谢。 –

+0

欢迎,Mittul –

+0

是Mittul先生,aisa奈海;) –