【发布时间】:2018-07-07 01:19:52
【问题描述】:
这是我的 cron 任务列表:
root@b03fbed2b08d:~# crontab -l
*/3 * * * * S3_BACKUPS_BUCKET=rake-backups /root/dump_psql.sh > /root/logs/cron-2018-01-28T02:24.log
dump_psql.sh 的内容
#!/bin/sh
BACKUP_PATH="/root/backups"
S3_URL="s3://${S3_BACKUPS_BUCKET}"
echo "$(date) Dumping ${POSTGRES_DB} database"
DB_NAME=rake
USER=dbroot
pg_dump -w -c -U $POSTGRES_USER $POSTGRES_DB > "${BACKUP_PATH}/$(date '+%Y-%m-%dT%H:%M').sql"
echo "$(date) Database dump created"
echo "$(date) Syncing ${BACKUP_PATH} folder with ${S3_URL} as $(whoami)"
/usr/local/bin/aws s3 sync $BACKUP_PATH $S3_URL
echo "$(date) Syncing completed"
当我手动调用此脚本时,它工作正常并提供以下输出:
Sun Jan 28 02:51:46 UTC 2018 Dumping rake database
Sun Jan 28 02:51:47 UTC 2018 Database dump created
Sun Jan 28 02:51:47 UTC 2018 Syncing /root/backups folder with s3://rake-backups as root
upload: backups/2018-01-28T02:48.sql to s3://rake-backups/2018-01-28T02:48.sql
upload: backups/2018-01-28T02:51.sql to s3://rake-backups/2018-01-28T02:51.sql
Sun Jan 28 02:51:48 UTC 2018 Syncing completed
但 cron 作业输出如下所示:
Sun Jan 28 02:48:01 UTC 2018 Dumping database
Sun Jan 28 02:48:01 UTC 2018 Database dump created
Sun Jan 28 02:48:01 UTC 2018 Syncing /root/backups folder with s3://rake-backups as root
Sun Jan 28 02:48:05 UTC 2018 Syncing completed
例如 aws sync 没有任何输出(环境变量已到位)并且脚本无效 - 备份不在存储桶中。我哪里错了?
【问题讨论】:
-
你看tag wiki的调试帮助了吗?貌似执行cron命令的环境不一样,不知道
S3_BACKUPS_BUCKET。 -
但它会打印出
Syncing /root/backups folder with s3://rake-backups as root这一行 -
对不起,我的意思是
POSTGRES_DB。第一个输出行,“Dumping database”,那里有一个空白。
标签: amazon-web-services amazon-s3 cron