新聞中心
Linux crontab是用來定期執(zhí)行程序的命令,當安裝完成操作系統(tǒng)之后,默認便會啟動此任務調(diào)度命令,crond 命令每分鍾會定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會自動執(zhí)行該工作,下面為大家分享一下Linux下crontab使用方法。

要執(zhí)行周期性任務,要保證服務運行。服務名為crond;service crond start ; systemctl start crond;
配置文件
/etc/crontab
cron的日志文件
cat /var/log/cron
任務調(diào)度的分類
Linux下的任務調(diào)度分為兩類,系統(tǒng)任務調(diào)度和用戶任務調(diào)度。
系統(tǒng)任務調(diào)度:系統(tǒng)周期性所要執(zhí)行的工作,比如寫緩存數(shù)據(jù)到硬盤、日志清理等。在/etc目錄下有一個crontab文件,這個就是系統(tǒng)任務調(diào)度的配置文件。
系統(tǒng)任務調(diào)度
通過編輯配置文件/etc/crontab,以下圖的格式標明需要運行的時間即可。一行對應一個任務,格式如下圖。
用戶任務調(diào)度
在當前用戶下使用命令crontab -e,會以當前用戶的身份建立任務調(diào)度。與系統(tǒng)任務調(diào)度文件格式不同的是不需要指名以哪個用戶的身份運行。
時間表示
指定值:指定具體的數(shù)字
范圍值:* 表示每,每到這這個時間段執(zhí)行一次任務。
離散取值:10 2,3,4 * * *;每天的2,3,4點的10分執(zhí)行一次。(總共執(zhí)行了3次)
連續(xù)范圍: 10 2-10 * * *;每天的2點10分到10點10分分別執(zhí)行(總共執(zhí)行了8次)
步長范圍:/3 * * ;每分鐘內(nèi)執(zhí)行3次(即每20秒執(zhí)行一次)
舉例:
10 10 /6 * *;每6天的10點10分執(zhí)行一次任務
日期與星期
10 10 1-10 * 0,6 #每個月的1-10號的10點10分,或者周六日的10點10分都執(zhí)行
舉例:
1 1 /6 * root echo “hello word ” ;每隔6天的1點1分執(zhí)行一次任務。
1 1-10/3 * * * root echo “hello word”;在每天1-10點范圍內(nèi)每3小時內(nèi)的第一分鐘執(zhí)行一次
創(chuàng)建周期性任務
crontab -e
* * * * * /bin/echo “date +\%F \%H:\%M:\%S“
#命令要寫絕對路徑。除非標明變量
#如果在用戶下新建crontab的話%需要轉(zhuǎn)義
創(chuàng)建時的其他設置
創(chuàng)建周期性任務時,默認的編輯器為vi所以沒有語法高亮??梢酝ㄟ^以下辦法將默認編輯器修改為vim
#寫入/etc/porfile.d 對所有用戶生效
#寫入~/bash_profile 對當前用戶
export EDITOP=vim
創(chuàng)建任務的權(quán)限
允許指定用戶創(chuàng)建任務
cat /etc/cron.deny #在文件內(nèi)寫入用戶名,使其不能創(chuàng)建新任務,但已創(chuàng)建的依然會執(zhí)行
拒絕指定用戶創(chuàng)建任務
cat /etc/cron.allow #默認文件不存在
允許與拒絕優(yōu)先級
如果allow文件存在,那么deny文件不生效。
如果allow為空,拒絕所有用戶
如果allow、deny都不存在,任何用戶不能創(chuàng)建計劃任務
實現(xiàn)毫秒、秒級別的周期性任務
利用usleep實現(xiàn)微妙級別的運行
usleep 1000000;1秒
usleep 1000;1毫秒
usleep 1;1微秒
利用循環(huán)體加sleep實現(xiàn)秒級別的。在每分鐘要執(zhí)行的任務中sleep20秒。
網(wǎng)站名稱:Linux下crontab使用方法
分享地址:http://www.fisionsoft.com.cn/article/cojgdge.html


咨詢
建站咨詢
