路径和其他环境变量不在cron

路径和其他环境变量不在cron

我有由 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 中定义的环境变量

另请参阅Crontab 执行多个命令但省略最后一个命令

希望这可以帮助

相关内容