linux系統定時執行shell指令碼
阿新 • • 發佈:2021-11-23
我們可能會經常需要在linux系統中做一些重複而又繁瑣的操作,為了解放自己,我們需要將這些東西寫到定時任務裡面,讓它每天執行
大概思路如下
- 根據自己的需求完成shell指令碼
- 將指令碼的執行語句加到linux自帶的crontab檔案中
廢話少說 上例子
我寫了一個 test.sh的shell指令碼,目錄是/home/joe/shell/test.sh
-
chmod 777 test.sh //給test檔案賦予可執行許可權
-
crontab -e //編輯crontab檔案
-
0 7 * * * /home/joe/shell/test.sh >> /home/joe/shell/test.log 2>&1
//在檔案最後加這行 , 每天早上7點會執行這條語句,並將執行日誌列印在同目錄的test.log下
-
crontab -l //檢視定時任務情況。
-
進入目錄檢視日誌驗證定時任務是否正常執行。
crond定時任務:
每五分鐘執行 */5 * * * *
每小時執行 0 * * * *
每天執行 0 0 * * *
每週執行 0 0 * * 0
每月執行 0 0 1 * *
每年執行 0 0 1 1 *
常見的問題:
-
寫好sh指令碼 然後利用Crontab -e 進行部署,00 11 * * * /home/dir/baidu_update_data.sh > /file.log 2>&1類似於之中格式,
-
/bin/bash^M: bad interpreter: No such file or directory
報錯的原因是:在Windos下與Linux下編輯,格式會有差異,Windows上傳的東西,導致格式變了,所以只需要改一下格式
vi name
:set ff=unix
-
Could not open input file for reading 報錯:注意指令碼放的目錄和許可權。
-
觀察執行成功是否,需要看日誌;日誌非常重要!!!