【发布时间】: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