Cron调度Python CSV清理脚本无执行效果问题排查
解决Cron定时运行Python清理脚本失败的问题
问题回顾
你原本想每天凌晨12点自动清理由其他脚本生成的code_list.csv文件,写了一个用truncate方法实现清理的Python脚本(实际文件名叫cleancsv.py),但配置Cron任务时误把脚本名写成了csvclean.py。结果就是Cron日志显示任务按时运行,但文件根本没被清理,手动执行脚本却完全正常。
排查过程
为了找到问题,你做了两步关键操作:
- 修改Cron任务,添加日志输出,把执行结果和错误信息写入
csvclean.log:*/1 * * * * cd /root/folder && /usr/bin/python3 ./csvclean.py > /root/folder/csvclean.log 2>&1 - 在脚本开头加了
print 'starting'语句,方便确认脚本是否被执行
查看日志后直接发现了报错:
/usr/bin/python3: can't open file './csvclean.py': [Errno 2] No such file or directory
这就直接定位了问题:Cron配置里的脚本文件名和实际文件名不匹配,系统找不到指定的脚本,自然没法执行清理操作。
解决方案
只需要修正Cron任务里的脚本文件名即可,把./csvclean.py改成实际的./cleancsv.py。最终正确的每日凌晨执行的Cron配置如下:
SHELL=/bin/bash 0 0 * * * cd /root/folder && /usr/bin/python3 ./cleancsv.py
另外给你两个额外的小建议:
- 如果你不想用
cd切换目录,可以直接用脚本的绝对路径调用,这样更不容易出错:0 0 * * * /usr/bin/python3 /root/folder/cleancsv.py - 排查Cron问题时,添加日志重定向(
> /path/to/log.log 2>&1)是非常实用的技巧,能帮你快速捕获到执行过程中的错误信息,避免瞎猜问题所在。
内容的提问来源于stack exchange,提问作者François Dionisi
相关产品推荐
相关产品推荐

