通过crontab执行Python脚本
我的Python脚本为什么没有每分钟通过crontab运行呢?我的脚本有执行权限,并且还调用了另外两个Python脚本。
This is the content of my crontab (#crontab -l):
*/1 * * * * /usr/bin/rsm/samplesMonitor.py
谢谢大家。
4 个回答
0
应该用 */1
而不是 *\1
(用正斜杠代替反斜杠)。另外,确保路径是正确的;通常在 /usr/bin 下面是没有子目录的。
1
我觉得应该是 */1
,而不是 *\1
。
4
检查一下 /var/log/syslog
这个文件,看有没有错误信息。
DIAGNOSTICS
cron requires that each entry in a crontab end in a
newline character. If the last entry in a crontab is
missing a newline (ie, terminated by EOF), cron will
consider the crontab (at least partially) broken. A
warning will be written to syslog.
更新:根据你的日志信息,脚本正在运行,但返回了一个错误代码。如果你安装了邮件代理,Cron会把输出结果发邮件给你。
你可以尝试以下两种方法:
- 安装一个邮件代理,比如:
apt-get install exim4
把你的cron命令改成记录到文件,像这样:
* * * * * /usr/bin/rsm/samplesMonitor.py 2>&1 >> /tmp/script.log
更新 2:我重新看了一下你的问题,觉得你可能遇到了Python导入的问题。你说你的脚本调用了另外两个脚本。我建议你从 /
目录运行你的脚本。Python默认会在当前工作目录查找导入的模块,所以要确保你的脚本可以在任何路径下运行。
在crontab中,你可以通过在另一个shell进程中调用你的脚本来设置起始工作目录。例如:
bash -c "cd THE_WORKING_DIR;/usr/bin/rsm/samplesMonitor.py"