[英]How else can I troubleshoot this cron job?
我一直在工作(和搜索)讓這個cron job / python腳本運行一段時間了。 但是,它顯然不起作用。 我不確定如何解決原因,我在其他SO問題中嘗試了一些我在這里找到的東西。
腳本的路徑:/home/phil/cron_jobs/octoStatus.py
我希望cron每分鍾都跑一次。
Crontab.txt文件:
*/1 * * * * python /home/phil/cron_jobs/octoStatus/octoStatus.py &> octolog.txt
octolog.txt用於捕獲STDOUT和STDERR信息。 輸出“sudo tail / var / log / cron”
Jul 3 10:20:00 bsd /usr/sbin/cron[83876]: (root) CMD (/usr/libexec/atrun)
Jul 3 10:20:00 bsd /usr/sbin/cron[83877]: (phil) CMD (python /home/phil/cron_jobs/octoStatus/octoStatus.py &> octolog.txt)
Jul 3 10:21:00 bsd /usr/sbin/cron[83903]: (phil) CMD (python /home/phil/cron_jobs/octoStatus/octoStatus.py &> octolog.txt)
Jul 3 10:22:00 bsd /usr/sbin/cron[83934]: (phil) CMD (python /home/phil/cron_jobs/octoStatus/octoStatus.py &> octolog.txt)
它似乎按照需要每分鍾運行一次。 但是,腳本的預期結果沒有發生。 octolog.txt也沒有被創建。 當我手動運行cron-log中顯示的確切語句時,一切都按預期正常工作,並創建octolog.txt文件。
我在FreeBSD上運行它,然后我去查看/ var / log / syslog,但它不存在。 我是FreeBSD的新手,但我不確定在這種情況下這意味着什么,但我想我會提到它。
我不確定其他信息會有什么幫助,因為我被困住了。 謝謝。 菲爾
首先,每分鍾運行一次腳本,你不需要*/1
。 默認情況下,Cron每分鍾運行一次,因此:
* * * * * /path/to/command
接下來,您的重定向可能會被破壞。 bash
手冊頁的“重定向標准輸出和標准錯誤”下列出了&>
格式,所以我認為這就是你要做的。 但是FreeBSD的/bin/sh
不是bash 。 所以:
* * * * * /path/to/command >/path/to/output.txt 2>&1
這會將stdout發送到您的文件,並將stderr復制到stdout。
這讓我們:
* * * * * python /home/phil/cron_jobs/octoStatus/octoStatus.py > octolog.txt 2>&1
另請注意,根據man 5 crontab
,您可以在crontab文件中設置MAILTO
變量,該變量將把作業中的輸出/錯誤定向到電子郵件地址。
請注意, cron
使用的PATH可能不包含/usr/local/bin
,其中安裝了python。 如果您的octoStatus.py
腳本包含“shebang”,那么您可以直接執行它。 否則,您將需要提供python
二進制文件的完整路徑,或者向您的crontab添加一個PATH變量(類似於我上面提到的MAILTO)。 在所有情況下,您都可以通過閱讀man 5 crontab
來獲取有關格式化的說明。
我建議您使用append
模式直接從python腳本寫入文件。
也只是猜測,但我認為你應該給出輸出文件的絕對路徑,如評論中所述,如python home/phil/cron_jobs/octoStatus/octoStatus.py &> /home/phil/cron_jobs/octoStatus/octolog.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.