1. 程式人生 > 其它 >linux系統定時執行shell指令碼

linux系統定時執行shell指令碼

我們可能會經常需要在linux系統中做一些重複而又繁瑣的操作,為了解放自己,我們需要將這些東西寫到定時任務裡面,讓它每天執行

大概思路如下

  • 根據自己的需求完成shell指令碼
  • 將指令碼的執行語句加到linux自帶的crontab檔案中

廢話少說 上例子

我寫了一個 test.sh的shell指令碼,目錄是/home/joe/shell/test.sh
  1. chmod 777 test.sh //給test檔案賦予可執行許可權

  2. crontab -e //編輯crontab檔案

  3. 0 7 * * * /home/joe/shell/test.sh >> /home/joe/shell/test.log 2>&1

    ​ //在檔案最後加這行 , 每天早上7點會執行這條語句,並將執行日誌列印在同目錄的test.log下

  4. crontab -l //檢視定時任務情況。

  5. 進入目錄檢視日誌驗證定時任務是否正常執行。


crond定時任務:

每五分鐘執行 */5 * * * *

每小時執行 0 * * * *

每天執行 0 0 * * *

每週執行 0 0 * * 0

每月執行 0 0 1 * *

每年執行 0 0 1 1 *


常見的問題:
  1. 寫好sh指令碼 然後利用Crontab -e 進行部署,00 11 * * * /home/dir/baidu_update_data.sh > /file.log 2>&1類似於之中格式,

  2. /bin/bash^M: bad interpreter: No such file or directory

報錯的原因是:在Windos下與Linux下編輯,格式會有差異,Windows上傳的東西,導致格式變了,所以只需要改一下格式

vi name

:set ff=unix

  1. Could not open input file for reading 報錯:注意指令碼放的目錄和許可權。

  2. 觀察執行成功是否,需要看日誌;日誌非常重要!!!