類似Windows平臺下的計劃任務,Linux下使用cron服務來實現一些特定任務的定時執行。目前流行的系統都已默認安裝了cron並隨機啓動。
cron服務相關命令:
/sbin/service crond start //啓動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啓服務
/sbin/service crond reload //重新載入配置
以上是cron服務啓動的相關命令,如沒有啓動的話可進行手動啓動。當然,更好的方法是將它設爲隨機自動啓用,只需在/etc/rc.d/rc.local 這個腳本的末尾加上:
/sbin/service crond start
cron服務使用crontab命令來對其進行配置。
crontab命令語法:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
crontab命令選項:
file 使用file文件的內容作爲某個用戶的cron服務配置,內容會複製到cron服務的配置文件中
-u 設定某個用戶的cron服務配置,一般root 用戶在執行這個命令的時候需要此參數
-l 列出某個用戶cron服務配置
-r 刪除某個用戶的cron服務配置
-e 編輯某個用戶的cron服務配置,將使用vi打開配置文件進行編輯保存後退出,文件語法見後
舉例:
crontab -u fred -r 刪除fred用戶的cron配置
crontab -l 列出當前用戶的cron配置
crontab -r 刪除當前用戶的cron配置
crontab -e 編輯當前用戶的cron配置,添加或刪除計劃任務項
cron配置文件語法
每行表示一個指令,即表示一項計劃任務;每行由空格分隔的六個部分組成,前5部分表示定時任務的執行時間,剩餘部分爲定時任務要執行的命令,格式如下:
分 小時 日 月 星期 命令
Minute Hour Day Month DayOfWeek command
Minute 每個小時的第幾分鐘執行該任務,0-59
Hour 每天的第幾個小時執行該任務,0-23
Day 每月的第幾天執行該任務,1-31
Month 每年的第幾個月執行該任務,1-12
DayOfWeek 每週的第幾天執行該任務,0-6,0表示週日
Command 指定要執行的程序
以上前五項可使用以下四個特殊符號:
* 表示所有數值,如第一位使用* 表示每分鐘
/ 表示每,如第一位使用 */5 表示每5分鐘
- 表示數值範圍,如第二位使用2-4表示2點到4點
, 表示離散的多個數值,如第2位使用6,8 表示6點和8點
在每行的六項字段中,除了Command是每次都必須指定的字段以外,其它字段皆爲可選字段,可視需要決定。對於不指定的字段,要用“*”來填補其位置。
舉例如下:
5 * * * * ls > /var/log.txt 指定每小時的第5分鐘執行一次ls命令,並將結果保存到/var/log.txt文件
30 5 * * * ls 指定每天的 5:30 執行ls命令
30 7 8 * * ls 指定每月8號的7:30分執行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30執行ls命令
30 6 * * 0 ls 指定每星期日的6:30執行ls命令 [注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令 [注:“,”用來連接多個不連續的時段]
25 8-11 * * * ls 每天8-11點的第25分鐘執行ls命令 [注:“-”用來連接連續的時段]
*/15 * * * * ls 每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令]
30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令。]
cron配置文件
使用crontab命令添加完成計劃任務後會在/var/spool/cron目錄中生成一個用戶名字的文件,文件裏面就是你的計劃任務,cron服務會每分鐘讀取一次/var/spool/cron 中的文件。
系統計劃任務
還有一種方法可以添加計劃任務,編輯/etc/crontab (cron服務每分鐘也讀取一次/etc/crontab文件。
用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統的任務。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出現錯誤,或者有數據輸出,數據作爲郵件發給這個帳號
HOME=/ //使用者運行的路徑,這裏是根目錄
# run-parts
#每小時執行/etc/cron.hourly內的腳本
01 * * * * root run-parts /etc/cron.hourly
#每天執行/etc/cron.daily內的腳本
02 4 * * * root run-parts /etc/cron.daily
#每星期執行/etc/cron.weekly內的腳本
22 4 * * 0 root run-parts /etc/cron.weekly
#每月去執行/etc/cron.monthly內的腳本
42 4 1 * * root run-parts /etc/cron.monthly
注意”run-parts”這個參數,如果去掉這個參數的話,後面就要寫要運行的某個腳本名,而不是文件夾名。例如:11 2 21 10 * rm -rf /mnt/fb
crontab命令總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
真實的模擬***綜合實驗
wbzjacky
2019-02-24 13:12:37
三層交換機的HSRP、vlan、端口聚合
wbzjacky
2019-02-24 13:12:37
HSRP和二層交換機的端口聚合、vlan
wbzjacky
2019-02-24 13:12:37
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38
IPsec ***實驗
wbzjacky
2019-02-24 13:12:37
CISCO路由AAA的Easy ***
wbzjacky
2019-02-24 13:12:37
CISCO訪問控制列表 企業網絡管理的必殺技
wbzjacky
2019-02-24 13:12:37