Ubuntu伺服器定時執行Python指令碼

依墟發表於2020-11-02

一、使用xshell登陸伺服器並傳輸檔案

  1. 使用xshell登陸Ubuntu伺服器
  2. 輸入rz命令,看是否已經安裝了lrzsz,如果沒有安裝則執行安裝命令
     yum   -y  install  lrzsz
    
  3. 安裝成功後輸入rpm命令確認是否安裝成功
    上圖為安裝成功
  4. 使用rz -y命令會彈出檔案上傳視窗進行檔案上傳如圖所示,選擇工程檔案上傳
  5. 此處我們將檔案打包成rar壓縮檔案上傳,故上傳後需要解壓。預設安裝的ubuntu無法解壓rar檔案。故需要安裝rar壓縮與解壓工具。
    sudo apt-get install rar 安裝
    sudo apt-get remove rar 解除安裝
    
    然後解壓檔案
    rar x FileName.rar 解壓
    rar a FileName.rar DirName 壓縮
    

二、使用crontab定時執行Python指令碼

  1. 在Python指令碼的開頭加上下面一行

    #!/usr/bin/python3.6
    

    上面這行的作用是說明使用那個直譯器來執行該檔案,如果不知道python直譯器在哪,可以使用命令which python來檢視

  2. 給該檔案新增可執行檔案

    chmod +x test.py 
    chmod 777 test.py 或者直接許可權全開
    
  3. 新增計劃任務

    crontab -e
    

    編輯cron檔案,新增一行命令

    00 8  * * * /usr/bin/python3.6 /Yourpath/test.py >> /Yourpath/testcrontab.log 2>&1
    
  4. cron檔案語法如下:

    分     小時   日       月       星期     命令
    0-59   0-23   1-31   1-12     0-6     command     (取值範圍,0表示週日一般一行對應一個任務)
    

    可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應使用者的cron檔案,也可以直接修改/etc/crontab檔案

    具體格式如下:

     Minute	Hour Day Month Day of week   command
      分鐘   小時  天   月     天每星期       命令
    

    每個欄位代表的含義如下:

         Minute            每個小時的第幾分鐘執行該任務
         Hour              每天的第幾個小時執行該任務
         Day               每月的第幾天執行該任務
         Month             每年的第幾個月執行該任務
         DayOfWeek         每週的第幾天執行該任務
         Command           指定要執行的程式
    
     記住幾個特殊符號的含義:
    	"*"代表取值範圍內的數字,
    	"/"代表"每",
    	"-"代表從某個數字到某個數字,
    	","分開幾個離散的數字
    
  5. 檢視指令碼執行情況

    >> /Yourpath/testcrontab.log 2>&1
    該語句表示將標準輸出與錯誤輸出重定向到/Yourpath/testcrontab.log檔案中。可以檢視執行定時指令碼執行資訊
    

    輸入命令,檢視定時指令碼執行情況

    sudo less /var/log/cron.log
    

    有一個坑需要注意:在指令碼中涉及檔案操作的需要寫絕對路徑。

相關文章