![](/img/trans.png)
[英]Scheduling Python script using Python CronTab on Windows 7
[英]Scheduling a python 3.6 script in using crontab/cron
我只是在我的Cent OS開發服務器上設置cron選項卡/作業。
在我的crontab中,我有以下內容。 (忽略時間設置,這是為了獲得下一次預定運行時間而在UTC服務器時間中添加的大約15:32)。
34 15 * * * cd welcomeclient-0.0.5 && python3.6 main.py
在命令行中,使用cd welcomeclient-0.0.5 && python3.6 main.py
可以正常工作。 welcomeclient-0.0.5
位於welcomeclient-0.0.5
根目錄下,而python3.6
位於/usr/bin
。
有什么建議么?
嘗試在crontab命令中使用絕對路徑:
34 15 * * * cd /foo/bar/welcomeclient-0.0.5 && /usr/bin/python3.6 main.py
或者,假設main.py也沒有利用其中的相對路徑:
34 15 * * */usr/bin/python3.6 /foo/bar/welcomeclient-0.0.5/main.py
似乎您正在嘗試更改crontab中的目錄,就像omu_negru所說的那樣,您將需要使用完整路徑。 這是因為crontab即使以您的名字運行也不會繼承您的環境變量,例如$ PATH。
嘗試這個。 首先,轉到腳本所在的目錄...,然后將main.py轉換為可執行文件,這樣就不必再調用python main.py了。 最簡單的方法是...
$ chmod u+x main.py
現在,如果執行ls -l,將在權限的用戶部分看到“ x”,您可以直接運行它。
-rwxr--r-- 1 user user 0 Aug 17 17:55 main.py
現在您已經准備好將crontab語法簡化為這樣的東西...
34 15 * * * /foo/bar/welcomeclient-0.0.5/main.py
我還希望將腳本的輸出捕獲到日志文件中,以便在事情無法按計划進行時更容易進行故障排除,如下所示:
34 15 * * * /foo/bar/welcomeclient-0.0.5/main.py & >> /foo/bar/main.log
應該將日志添加到日志輪換中,否則它將不斷填滿並最終使您的系統空間不足,但這是此站點上已經解決的另一個主題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.