我有这个极其简单的 cron 作业:
48 20 * * * cd /home/pankaj;s3cmd -f get s3://myfile.gz
该命令本身可以运行。但 cron 作业却不行。cron 作业是为能够运行该命令的同一用户 (pankaj) 创建的。/var/log/syslog 中也没有太多信息。
Oct 15 20:48:01 dev CRON[17020]: (pankaj) CMD (cd /home/pankaj;s3cmd -f get s3://myfile.gz)
Oct 15 20:48:01 dev CRON[17019]: (CRON) info (No MTA installed, discarding output)
我怎样才能找出问题所在?.s3cfg 的权限如下:
pankaj@dev:~$ ls -l .s3cfg
-rw------- 1 pankaj pankaj 2050 Feb 7 2018 .s3cfg
答案1
将 cronjob 修改为:
48 20 * * * cd /home/pankaj;s3cmd -f get s3://myfile.gz 2>&1 | tee log
日志显示:
s3cmd: command not found
:(。所以一个简单的改变就解决了这个问题:
48 20 * * * cd /home/pankaj;/usr/local/bin/s3cmd -f get s3://myfile.gz