在aiForge上使用crontab排程任務

Yanwei Liu
1 min readJan 24, 2021

--

$ sudo apt-get install cron          #安裝
$ which service
#/usr/sbin/service #service資料夾在何處
$ sudo /usr/sbin/service cron start #啟動
$ sudo /usr/sbin/service cron status #狀態
crontab指令:
crontab -e #編輯目前正在排程的程式(用來新增排程)
crontab -l #查看目前有在GCP排程的程式
crontab -r #刪除所有在GCP排程的程式
#搭配crontab guru看出程式實際執行的時間點為何
-------------------------------------------------------
自動排程步驟:
1.輸入crontab -e後,先刪除所有註解再進行以下步驟
2.新增指令(以3小時執行1次程式為例子)
首行加入LANG=en_US.UTF-8 (因為中文會亂碼)
#注意,這邊不用/usr/bin/python的原因在於aiForge上的Python版本太多,導致透過pip安裝的套件無法連接在一起,因此先透過python指令進入python shell,先正常引入套件確認無誤後,檢查版本號。再用"whereis python3.6.1"指令,顯示出安裝的位置為"/opt/conda/bin/python3.6"0 */3 * * * /opt/conda/bin/python3.6 /root/notebooks/path/to/XXX.py3.按下Ctrl+X離開
4.出現Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?
輸入Y(yes),進行保存。
5.出現File Name to Write: /tmp/crontab.IJMcp4/crontab。點擊Enter
6.輸入grep CRON /var/log/syslog*進行檢查,若沒什麼異常,就是成功了。
#注意路徑的設定要用/usr而不是/user,否則無法順利執行python程式
--------------------------------------------------------------------
解決(CRON) info (No MTA installed, discarding output)
#加入>/dev/null 2>&1
例如:
0 */3 * * * /opt/conda/bin/python3.6 /root/notebooks/path/to/XXX.py >/dev/null 2>&1
2021/03/10更新使用shell加入crontab的方法:
(crontab -l 2>/dev/null; echo "*/5 * * * * /path/to/job -with args") | crontab -

可以與Selenium爬蟲相互搭配:
https://gist.github.com/e96031413/70b4c56af66e8e2f659c73c97cfaa5b8

參考資料:

--

--

No responses yet