我有由 cron 执行的 shell 脚本。
*/5 * * * * /home/foo/backups/backup.sh
备份脚本:
#!/bin/bash
FILE_NAME=$(date +%Y%m%d%H%M)
PATH1="/home/foo/backups/data-$FILE_NAME.sql.gz"
pg_dump -U XXX -E utf8 --no-acl -h localhost --no-owner XXX | gzip -c > $PATH1
aws s3 cp $PATH1 s3://XXX
Cron 已正确执行并创建了本地备份。但转储文件未复制到 Amazon S3 存储桶。当我/home/foo/backups/backup.sh
手动运行时,文件被传输到 S3。
aws s3 cp
从 cron 执行时 S3 cli 无法工作,有什么原因吗?
答案1
路径和其他环境变量不在cron
cron
没有设置太多环境变量。path
中的变量默认值cron
仅为。尝试在脚本中/usr/bin:/bin
添加完整命令。/path/to/the/aws
请参阅此答案以了解不同的解决方案:cronjob 无法找到 .bashrc 中定义的环境变量
希望这可以帮助