簡體   English   中英

使用crontab / cron計划python 3.6腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM