我已经在root的crontab中定义了如下的cron作业:
0 1 * * * /usr/local/bin/tarsnap-backup-script > /tmp/tarsnapcron.txt 2> /tmp/tarsnapcron.err
该脚本是一个执行tarsnap的python脚本,它从/root/tarsnap.key读取密钥。 该密钥由root和chmod 400拥有。
如果我从bash shell运行脚本,它会执行没有错误。 但是,在cron下,我得到一个pythonexception打印到tarsnapcron.err :
could not change directory to "/root": Permission denied
在bash中以root身份运行这个脚本和从root的crontab运行脚本有什么区别? 为什么后者不能从/root读取?
我有同样的问题,解决scheme是,授予根组权限:
chmod 440 /root/backup.key
之后,cron能够读取文件,并且备份脚本完美无缺地运行。