crontab命令被用來提交和管理用戶的需要周期性執(zhí)行的任務(wù),與windows下的計(jì)劃任務(wù)類似,當(dāng)安裝完成操作系統(tǒng)后,默認(rèn)會(huì)安裝此服務(wù)工具,并且會(huì)自動(dòng)啟動(dòng)crond進(jìn)程,crond進(jìn)程每分鐘會(huì)定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動(dòng)執(zhí)行該任務(wù)。
語法
crontab(選項(xiàng))(參數(shù))
選項(xiàng)
-e:編輯該用戶的計(jì)時(shí)器設(shè)置;
-l:列出該用戶的計(jì)時(shí)器設(shè)置;
-r:刪除該用戶的計(jì)時(shí)器設(shè)置;
-u<用戶名稱>:指定要設(shè)定計(jì)時(shí)器的用戶名稱。
參數(shù)
crontab文件:指定包含待執(zhí)行任務(wù)的crontab文件。
知識(shí)擴(kuò)展
Linux下的任務(wù)調(diào)度分為兩類:系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。
系統(tǒng)任務(wù)調(diào)度:系統(tǒng)周期性所要執(zhí)行的工作,比如寫緩存數(shù)據(jù)到硬盤、日志清理等。在/etc目錄下有一個(gè)crontab文件,這個(gè)就是系統(tǒng)任務(wù)調(diào)度的配置文件。
crontab文件的含義:
用戶所建立的crontab文件中,每一行都代表一項(xiàng)任務(wù),每行的每個(gè)字段代表一項(xiàng)設(shè)置,它的格式共分為六個(gè)字段,前五段是時(shí)間設(shè)定段,第六段是要執(zhí)行的命令段,格式如下:
minute??hour?? day?? month??week?? command???? 順序:分 時(shí) 日 月 周
其中:
minute:表示分鐘,可以是從0到59之間的任何整數(shù)。
hour:表示小時(shí),可以是從0到23之間的任何整數(shù)。
day:表示日期,可以是從1到31之間的任何整數(shù)。
month:表示月份,可以是從1到12之間的任何整數(shù)。
week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。
command:要執(zhí)行的命令,可以是系統(tǒng)命令,也可以是自己編寫的腳本文件。
在以上各個(gè)字段中,還可以使用以下特殊字符:
星號(hào)(*):代表所有可能的值,例如month字段如果是星號(hào),則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。
逗號(hào)(,):可以用逗號(hào)隔開的值指定一個(gè)列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數(shù)之間的中杠表示一個(gè)整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每?jī)尚r(shí)執(zhí)行一次。同時(shí)正斜線可以和星號(hào)一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次。
怎么使用呢?
每一分鐘執(zhí)行一次
*/1 * * * * /var/www/html/test.sh
如果權(quán)限不夠,則提升權(quán)限:
Chmod 777 /var/www/html/test.sh
/var/spool/mail/root


新建test.sh
#!/bin/bash
echo "yes" >> /var/www/html/abc.txt
test.sh中第一行要以 “#! /bin/bash” 開頭,它代表的意思是,該文件使用的是bash語法。如果不設(shè)置該行,雖然您的shell腳本也可以執(zhí)行,但是這不符合規(guī)范。 # 表示注釋,在前面講過的。后面跟一些該腳本的相關(guān)注釋內(nèi)容以及作者和創(chuàng)建日期或者版本等等.
Chmod 777 test.sh
加入定時(shí)任務(wù):
Crontab -e