作為全新小白突然接觸crontab這個工具,難免觸及一些Linux基本規則的雷區,這裡將自身經驗順帶記錄,留作他人日後借鑒。
周邊命令
做任務計劃,不是寫好任務指令就完成了,還要注意以下一些事項:
1、每次修改完crontab任務計劃命令後執行以下命令
systemctl reload crond
systemctl restart crond2、給文件增加可執行權限
chmod +x ./cron.sh3、腳本規範-在腳本開頭寫入
#!/bin/bash4、絕對路徑:由某些軟件支持的命令,需要寫完整路徑調用,比如我平時使用的
downloadcsv intodb /opt/downloadcsv/export/xiaoneng_sxd/xiaoneng_sxd.csv 數據庫密碼需要修改為
/opt/downloadcsv/downloadcsv intodb /opt/downloadcsv/export/xiaoneng_sxd/xiaoneng_sxd.csv 數據庫密碼5、權限問題
如下,只需新建.sh文件,並在其中,依據執行計劃需求按格式逐行輸入執行時間,執行用戶,執行命令即可
比較關鍵的問題是,這個.sh文件必須授予執行權限,可以採用下面的命令進行授權:
chmod +x ./cron.sh另外,如果command語句中涉及到日誌文件的寫入,該日誌文件要提前建好,還要進行寫入授權,以免出錯。
crontab命令與語法
我們權且將crontab命令分位兩類:
一類是crontab任務計劃本身的命令,另一類是crontab工具的操作指令。
1、crontab任務計劃指令語法
圖片來自網絡-侵刪
在以上各個字段中,還可以使用以下特殊字符:
“*”代表所有的取值範圍內的數字,如月份字段為*,則表示1到12個月;
“/”代表每一定時間間隔的意思,如分鐘字段為*/10,表示每10分鐘執行1次。
“-“代表從某個區間範圍,是閉區間。如「2-5」表示「2,3,4,5」,小時字段中0-23/2表示在0~23點範圍內每2個小時執行一次。
“,”分散的數字(不一定連續),如1,2,3,4,7,9。
註:由於各個地方每周第一天不一樣,因此Sunday=0(第一天)或Sunday=7(最後1天)。
2、任務計劃命令語法示例:
通過crontab -e 呼出crontab任務計劃編輯頁面(也有另一種方法,直接vi /etc/crontab文件進行編輯<這種是作為系統任務運行>),然後在彈出的編輯頁面輸入下列命令
* */1 * * * root /opt/downloadcsv/downloadcsv/cron.sh
# 強烈建議把用戶(root)加上,否則可能執行過程中會出現沒有權限無法執行的情況。
上述命令表示每隔1小時,以root身份執行sh命令文件
crontab工具的操作指令
crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
- • -u user:用於設定某個用戶的crontab服務;
- • file: file為命令文件名,表示將file作為crontab的任務列表文件並載入crontab;
- • -e:編輯某個用戶的crontab文件內容,如不指定用戶則表示當前用戶;
- • -l:顯示某個用戶的crontab文件內容,如不指定用戶則表示當前用戶;
- • -r:從/var/spool/cron目錄中刪除某個用戶的crontab文件。
- • -i:在刪除用戶的crontab文件時給確認提示。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/268230.html
微信掃一掃
支付寶掃一掃