这是我的crontab文件的样子:
* * * * * root /usr/bin/python /root/test.py >> /root/classwatch.log 2>&1
这就是我的python脚本:
#!/usr/bin/python
print "hello"
cronjob创建日志文件。但它是空的。我也很确定python文件没有被执行。
感谢任何帮助!我已经玩了4个小时而没有运气。
答案 0 :(得分:4)
创建crontab有两种方法 - 每个用户或全局。对于全局crontab(/ etc / crontab),您可以根据以下内容指定用户:
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
对于用户crontabs,你没有,按照:
aj@wherever:~$ crontab -l
0 * * * * /home/aj/bin/update-foobar
要通过#运行python脚本!您只需使脚本可执行(chmod 755 /root/test.py),然后直接调用它,例如:
/root/test.py
如果您不想这样做,可以通过python解释器手动运行,如:
/usr/bin/python /root/test.py
这假设您正在运行的任何用户(即/ etc / crontab中的用户,或者您正在运行crontab -e的用户)都有权查看python脚本 - / root可能无法访问常规用户,例如
您可以通过添加以下内容来了解您的脚本是否正在执行:
import time
time.sleep(20) # pause for 20 seconds
然后检查“top”或“ps aux”或“pstree”以查看python是否实际运行。
答案 1 :(得分:1)
...更新
用
替换内容* * * * * date >> /tmp/foo
这link有帮助吗?
删除它应该创建的文件。它会回来吗? 我认为每个用户都有自己的crontab文件,因此该行的用户是supsect 有人在你玩笑话并用一个无操作替换python二进制文件吗?
我必须认为cron不正常,因为回声不起作用。您确定使用echo将输出目录更改为/ tmp吗?
你可以对文件执行od(八进制转储)并查看是否可以将控制字符或选项卡放入cron文件中?
答案 2 :(得分:1)
chmod 755 /root/test.py
然后
* * * * * /root/test.py >> /root/classwatch.log 2>&1
应该有用。
答案 3 :(得分:0)
您是否尝试过将脚本放在其他位置(例如/ usr / local / bin /)?
答案 4 :(得分:0)
这在我的RHES 4 Linux机箱上运行正常,如图所示(注意:我删除了crontab中的'root'用户名)。
我怀疑您安装cron作业的方式或系统上的cron配置有问题。你是怎么安装的?您使用的是crontab -e
还是其他方法?您是否能够成功运行root的任何其他cron作业?
答案 5 :(得分:0)
可能是由于语法错误导致之前声明的作业失败。你能粘贴整个crontab吗?就我所见,你的生产线看起来很好。
答案 6 :(得分:0)
如果您正在编辑/ etc / crontab,则crontab条目是正确的 - 但是如果您正在编辑它 使用普通用户的crontab(即crontab -e,crontab crontabfle等) 根条目在语法上是不正确的。
答案 7 :(得分:0)
尝试将stdout发送到日志文件,而不是stderr和stout:
/ usr / bin / python /root/test.py> /root/classwatch.log