2014-12-30 60 views
0

我有一份工作,我已設置爲每5分鐘運行一次。我確定它的確運行運行:Crontab - Python腳本運行,將輸出發送到郵件,但不寫入文件

grep CRON /var/log/syslog 

這表明它正在運行的準確命令我需要它來運行「python3 /root/foofolder/foo.py R」

Dec 29 23:05:01 fooserver CRON[9306]: (root) CMD (python3 /root/foofolder/foo.py R) 

它將輸出發送到郵件。我閱讀郵件和輸出看起來好像我在終端上運行它,完全按照我的需要。該腳本應該寫出一個文件。它沒有這樣做。在命令行中運行腳本可以很好地寫入文件。我給了.py文件+ x權限並添加了

#!/usr/bin/python 

到.py腳本的開頭。還有什麼我失蹤?

+0

您沒有指定是否爲文件使用絕對路徑或相對路徑。總是使用絕對路徑。 – user3427419

+1

沒有顯示'foo.py'腳本的要點,我們無法調試它。 –

+0

不相關:在這種情況下,您不需要+ x權限和/或shebang('#!'),因爲您使用了'python3'。如果您設置了正確的shebang'#!/ usr/bin/python3'並且可執行權限 – jfs

回答

1

嘗試在腳本的早期使用絕對路徑和/或os.chdir到一個衆所周知的位置(在打開文件之前)。

+0

使用os.chdir設置路徑的工作方式類似於魅力,則可以省略'python3'。 –

+0

快樂的工作!請考慮接受這個答案。謝謝! –