crontab命令被用來提交和管理用戶的需要周期性執(zhí)行的任務(wù)霍比,與windows下的計劃任務(wù)類似,當(dāng)安裝完成操作系統(tǒng)后暴备,默認會安裝此服務(wù)工具悠瞬,并且會自動啟動crond進程,crond進程每分鐘會定期檢查是否有要執(zhí)行的任務(wù)涯捻,如果有要執(zhí)行的任務(wù)浅妆,則自動執(zhí)行該任務(wù)。
語法
crontab(選項)(參數(shù))
選項
-e:編輯該用戶的計時器設(shè)置障癌;
-l:列出該用戶的計時器設(shè)置凌外;
-r:刪除該用戶的計時器設(shè)置;
-u<用戶名稱>:指定要設(shè)定計時器的用戶名稱涛浙。
參數(shù)
crontab文件:指定包含待執(zhí)行任務(wù)的crontab文件康辑。
知識擴展
Linux下的任務(wù)調(diào)度分為兩類:系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。
系統(tǒng)任務(wù)調(diào)度:系統(tǒng)周期性所要執(zhí)行的工作轿亮,比如寫緩存數(shù)據(jù)到硬盤疮薇、日志清理等。在/etc目錄下有一個crontab文件我注,這個就是系統(tǒng)任務(wù)調(diào)度的配置文件按咒。
crontab文件的含義:
用戶所建立的crontab文件中,每一行都代表一項任務(wù)仓手,每行的每個字段代表一項設(shè)置胖齐,它的格式共分為六個字段,前五段是時間設(shè)定段嗽冒,第六段是要執(zhí)行的命令段呀伙,格式如下:
minute??hour?? day?? month??week?? command???? 順序:分 時 日 月 周
其中:
minute:表示分鐘,可以是從0到59之間的任何整數(shù)添坊。
hour:表示小時剿另,可以是從0到23之間的任何整數(shù)。
day:表示日期贬蛙,可以是從1到31之間的任何整數(shù)雨女。
month:表示月份,可以是從1到12之間的任何整數(shù)阳准。
week:表示星期幾氛堕,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日野蝇。
command:要執(zhí)行的命令讼稚,可以是系統(tǒng)命令,也可以是自己編寫的腳本文件绕沈。
在以上各個字段中锐想,還可以使用以下特殊字符:
星號(*):代表所有可能的值,例如month字段如果是星號乍狐,則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作赠摇。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如浅蚪,“1,2,5,7,8,9”
中杠(-):可以用整數(shù)之間的中杠表示一個整數(shù)范圍藕帜,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執(zhí)行一次惜傲。同時正斜線可以和星號一起使用耘戚,例如*/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
加入定時任務(wù):
Crontab -e