【问题标题】:AWS Database Backup RDS to S3 By Crontab (Cron Job)AWS 数据库通过 Crontab 将 RDS 备份到 S3(Cron 作业)
【发布时间】:2018-02-28 08:50:36
【问题描述】:

我想使用 cron 作业每天创建数据库备份。

我为数据库备份创建了一个批处理文件。下面是批处理文件代码。

#!/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/app/current/app/sqlbackup.sh

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

【问题讨论】:

  • 这不是批处理文件。您应该将标签从 batch-file 更改为 bash
  • 您是否从 cli 运行 aws configure 并设置您的 ssh 用户以访问 S3?
  • 你还没有告诉我们出了什么问题。 cron 是否无法运行脚本? mysqldump 失败了吗? s3cmd 上传失败了吗?
  • @jarmod 我得到 /var/app/current/sqlbackup.sh: line 3: $'\r': command not found 将数据库备份到 201709191440.sql.gz /var/app /current/sqlbackup.sh:第 7 行:$'\r':找不到命令转储已压缩 /var/app/current/sqlbackup.sh:第 9 行:$'\r':找不到命令将压缩转储上传到Amazon S3 存储桶... /var/app/current/sqlbackup.sh:第 11 行:s3cmd:找不到命令 /var/app/current/sqlbackup.sh:第 12 行:$'\r':找不到移动备份文件的命令201709191440.sql.gz

标签: php bash amazon-web-services amazon-s3 cron


【解决方案1】:

可能是您尚未在 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"

【讨论】:

  • 这对我有帮助。 ..谢谢。
  • 欢迎,米图尔
  • 是 Mittul 先生 , aisa nai hai ;)
猜你喜欢
  • 2017-08-15
  • 2020-11-14
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
相关资源
最近更新 更多