cron执行python无果

执行以下crontab,xxx.py文件中有print输出:
18 16 * /usr/local/python3/bin/python3.7 /root/xxx.py

1.确认了cron正常运行,测试了定时输出

2.确认了 /usr/local/python3/bin/python3.7 /root/xxx.py 可以执行,也得到了正确的结果

3.确认了/var/log/cron 有内容,看到了执行这个定时任务,记录如下:
Nov 23 16:01:02 localhost run-parts(/etc/cron.hourly)[17754]: finished 0yum-hourly.cron
Nov 23 16:10:01 localhost CROND[17949]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Nov 23 16:17:04 localhost crontab[18958]: (root) BEGIN EDIT (root)
Nov 23 16:17:36 localhost crontab[18958]: (root) REPLACE (root)
Nov 23 16:17:36 localhost crontab[18958]: (root) END EDIT (root)
Nov 23 16:18:01 localhost crond[1076]: (root) RELOAD (/var/spool/cron/root)
Nov 23 16:18:01 localhost CROND[19014]: (root) CMD (/usr/local/python3/bin/python3.7 /root/xxx.py)
Nov 23 16:20:01 localhost CROND[19630]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Nov 23 16:21:31 localhost crontab[19849]: (root) BEGIN EDIT (root)
Nov 23 16:23:50 localhost crontab[19849]: (root) END EDIT (root)

4.确认了 /usr/local/python3/bin/python3.7 /root/xxx.py >> x.log 可以执行,也加了 2>&1 ,x.log都有正常的程序输出记录

抓狂了,感觉都检查了都没问题,命令都用了绝对路径,就是没执行结果,中间执行输出记录也没有,貌似就没执行

阅读 3.5k
2 个回答

以前碰到过类似的情况,当时出现的问题是文件需要依赖其他文件。如果当前工作目录不是项目的目录的话,就会找不到依赖

比较好的方式是 cd target_dir && /path/to/python xxx.py

新手上路,请多包涵

您想要得到什么运行结果呢?crontab里面的任务如果有输出且不重定向的话,会输出到邮件里。您可以到/var/mail/root这个文件里找一下,看看有没有输出结果~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题