最近两次使用crontab执行python脚本的一些问题
两次都是直接执行脚本可以运行,但是放到crontab下无法执行
检查crond日志有输出,排除
第一次使用了
os.system('cd ....')
os.system('command2')
发现可以切换至目录,但后面的os.system不执行
修改为:
os.system('cd.........;command2')
解决
第二次使用了
os.system('tar ./backup/.....')
改为
os.system('tar /home/github/backup/.....')
解决
总结起来,两次的问题其实是同一个问题,在执行os.system时会新起一个线程,问题1:
线程1 cd进到了目录 线程2 却没有进去,自然无法执行command2
问题2:新的线程找不到路径./backup ,新起的线程并不会在当前脚本所在路径下,当然也就无法执行了
日志是排查问题的好帮手 ,方法是将标准错误输出 和标准输出都添加到日志文件,可以协助定位问题
2>log 1>&2