【发布时间】:2014-03-26 20:55:05
【问题描述】:
我有一个运行时备份 sql 数据库的 python 脚本。
当我手动破坏它但它不运行 tar 和 rm 命令时它可以完美运行!
在备份之前我当然会运行 mysqldump 命令,然后在我运行它之后。这是处理备份的脚本部分
os.system('tar -cvzf Backup_' + formt + '.tar.gz ' + 'sql_Backup_' + formt + '.sql')
os.system('rm ' + 'sql_Backup_' + formt + '.sql')
在我的 cronjob 中
# Python SQL Backup Script
00 23 * * 07 sudo /usr/bin/python /home/user/scripts/SQLbackup.py
当我从 shell 本身运行它时,它运行良好 sudo python /home/user/scripts/SQLbackup.py
但 cronjob 没有。它只运行脚本并创建 sql 文件,仅此而已。它不压缩它,它也不会在压缩后删除sql文件。
我将此添加到 sudoers 文件中
root ALL=(ALL) NOPASSWD:/bin/tar
sudo ALL=(ALL) NOPASSWD:/bin/tar
还是什么都没有。我把 root 和 sudo 都放了只是为了百分百确定。
请记住:它手动运行完美,但不能完全从 crontab 运行。
【问题讨论】:
-
结果邮件说?
-
什么结果邮件? @IgnacioVazquez-Abrams
-
crond 为每个通过 stdout 或 stderr 产生输出的单个 cron 作业发送的那个。
-
@IgnacioVazquez-Abrams 它没有给我发送任何电子邮件。并且 cronjob 不会产生任何输出。它只是运行备份,运行 tar 就这样
-
这不是你的问题所说的。
标签: python linux shell cron crontab