记crontab脚本未执行问题排查
問題描述
昨晚某個用python寫的監控腳本上線,運維小伙伴電話告知手動執行結果正常,但用crontab無論如何也調不起來,腳本自己打的log也杳無音訊。
檢查
思路
- 告知小伙伴先別忙著改腳本,關注一下那個old/srcipt.log。然后得知log沒有輸出。
- 修改重定向到/tmp/script.log,觀察到輸出:
這又是哪跟哪?翻出來瞧瞧:
try: f = open('file', 'r') except IOError, e: print >> sys.stderr, e else: somelist = f.readlines() finally: f.close()
對著這段代碼看了足足5分鐘……
有毛病嗎?沒毛病啊?是我眼睛有毛病了?
既然是finally這有語法錯誤,那就滾回去翻翻文檔吧。還好我有服務器上Python 2.5對應的老文檔。
Changed in version 2.5: In previous versions of Python, try...except...finally did not work. try...except had to be nested in try...finally.
Python 2.5 開始支持except跟finally同級,之前版本except要嵌套在try...finally里面。如此說來,難道是版本問題?
# python --version python 2.5.x # which python /usr/local/bin/python記得服務器是RHEL 5.8,元配python 2.4.3,那么就是crontab默默地調用了/usr/bin/python
附
問題解決了,但還是沒想明白 source /etc/profile 后為何會去用python2.4,待查。
轉載于:https://www.cnblogs.com/qingheng/p/cron-not-execute.html
總結
以上是生活随笔為你收集整理的记crontab脚本未执行问题排查的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 切割nginx日志
- 下一篇: 删除数据表和清空数据表的内容(保存表结构