我有一個python應用程序,它使用getopt()來解析參數的命令行。它可以在交互式bash shell或從命令行調用的bash腳本中正常工作,它在通過cron在bash shell腳本中調用時不會執行。我使用的Fedora 15如何將bash參數傳遞給cron作業中的python腳本?
時稱爲一個cron作業的應用程序失敗,發出以下錯誤在/ var/log/messages中:
myscript.py: abrt: detected unhandled Python exception in myscript.py
似乎在命令行參數AREN」 t被正確地傳遞給python腳本。
例如,下面的命令行調用正常工作,設置輸入文件名「input.txt中」,並設置「日誌」和「計時器」標誌,以他們的所需值:
python myscript.py -i input.txt --log --timer
當我試圖通過bash腳本在命令行調用該程序,bash腳本工作正常。但是當我嘗試通過cron運行bash腳本時,執行失敗,出現上述錯誤。
我不知道爲什麼shell腳本無法通過cron正確執行。我使用的全路徑名從用於cron作業的bash腳本中,這樣的環境路徑不應是一個問題:
/usr/bin/python /path/to/myscript.py -i /path/to/input.txt --log --timer
我以爲這句法,在bash腳本中使用時調用通過cron,可能會將腳本的參數傳遞給python,而不是myscript.py。
任何幫助,將不勝感激!
當人們擁有與運行腳本和程序問題從機智hin'cron(8)',錯誤更多地來自缺少的環境變量。所以我不相信這是參數解析。嘗試找出有關未處理的異常的更多細節:用'try' /'catch'塊包裝整個腳本,並將有關該異常的詳細信息保存到磁盤。 – sarnold 2011-06-04 23:16:30
嘗試通過shell執行python,像'/ bin/bash -c「/ path/to/python/path/to/script ...「'這可能有幫助,但這只是一個猜測 - 我有類似的問題,直到我意識到cron使用/ bin/sh來執行它的命令。 – cji 2011-06-04 23:21:26