2019-07-16

在樹莓派 RaspBerry Pi 執行排程Python程式 (cron / crontab)

工作環境:

  • RaspBerry Pi 3 Mode B+
  • 作業系統:版本代號為 Buster (Version:June 2019 / Release date:2019-06-20 / Kernel version:4.19)
樹莓派排程工作的編輯:
  1. 如何進入排程工作的編輯?
    (要用預設登入帳號pi的身分執行,所以不要sudo)
     crontab -e
  2. crontab -e的編輯器預設為nano:
    存檔:^O (ctrl-O)
    離開:^X (ctrl-X)
  3. 加入一個排程工作
    */5 * * * * python3 /home/pi/Programs/testSchedule.py > /dev/null 2>&1 
  4. 排程時間參數說明:
    (第幾分鐘 ) (幾點) (哪一天) (月份) (星期)
  5. 常用排程執行週期格式:
    • 每五分鐘執行一次:
       */5 * * * *
    • 每整點執行一次:
       0 * * * * 
    • 每天23:55執行一次:
      55 23 * * *
    • 每月1日00:05執行一次:
      5 0 1 * *
    • 每週一07:00執行一次:
      0 7 * * 1
    • 每小時的1,10,21,32,43,55
      "1,10,21,32,43,55" * * * *
    • 每月的1-3日06:10個執行一次
      10 6 1-3 * *
  6. 排程工作內容編輯後,必須重新啟動排程服務
    sudo service cron restart
用於排程的Python Script程式,須注意的事項:
  1. 用於排程的Python script程式,第一行(shebang line, #! 程式檔名)需指定,這個script要用哪個程式來執行,依照作業環境的不同,區分如下:
    • Windows:#! python3
    • OS X:#! /usr/bin/env python3
    • Linux:#! /usr/bin/python3
    • 其他Linux常見的shebang
      • #!/bin/sh→使用 sh(Bourne shell) 或其它相容 shell 執行指令碼
      • #!/bin/csh→使用 csh(C shell) 執行
      • #!/usr/bin/perl -w→使用帶警告的 Perl 執行
      • #!/usr/bin/python -O→使用具有程式碼最佳化的 Python 執行
      • #!/usr/bin/php→使用 PHP 的命令列直譯器執行
  2. 確認Python script程式的執行權限:
    • 將 .py 程式,放在 預設使用者 pi 的 home folder
    • 授予執行權限:chmod +x thePythonScript.py
    • python script排程時間指定的範例:
      每逢1月2日的03:04am 執行
      4 3 2 1 8 /home/pi/schedulePython.py

參考資料:

沒有留言:

張貼留言