您好,登錄后才能下訂單哦!
這篇文章主要介紹“Linux系統(tǒng)定時任務(wù)怎么配置”,在日常操作中,相信很多人在Linux系統(tǒng)定時任務(wù)怎么配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux系統(tǒng)定時任務(wù)怎么配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一:定義
crond是Linux系統(tǒng)中用來定期執(zhí)行命令或指定程序任務(wù)的一種服務(wù)或軟件
1、linux系統(tǒng)自身定期執(zhí)行的任務(wù)(輪詢系統(tǒng)日志、備份數(shù)據(jù)等)
2、用戶執(zhí)行的任務(wù)(定時更新同步時間、網(wǎng)站數(shù)據(jù)備份等)
二:命令語法
定時任務(wù)的命令是crontab,其守護進程是crond(服務(wù)運行的程序)
crontab [-u users] 文件
crontab [-u users] [-e | -l | -r]
-e 編輯定時任務(wù)
-l 查看定時任務(wù)
-r 清除定時任務(wù)
/etc/cron.deny(allow) 控制使用crontab的權(quán)限用戶
/etc/spool/cron/所有用戶crontab配置文件的存放地
三:系統(tǒng)定時任務(wù)格式
[root@Centos ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
/etc/crontab分七段,空格分隔,用戶6段
時間格式:分時日月周—— * * * * * user-name command
特殊符號的意義
*任意(每‘時間’)
-(減號)分隔符,表示一個時間段“到”如17-19表時17到19的意思
,(逗號)分隔時段,不連續(xù)的兩個時間
/n(n代表數(shù)字)每隔N單位的時間,/5 每5XX
四:服務(wù)狀態(tài)查看
chkconfig --list crond 查看服務(wù)是否開機啟動
[root@Centos ~]# chkconfig --list crond
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@Centos ~]#ps -ef|grep crond 查看服務(wù)是否啟動
[root@Centos ~]# ps -ef|grep crond
root 1746 1 0 09:17 ? 00:00:01 crond
root 2274 2052 0 10:14 pts/0 00:00:00 grep crond
/etc/init.d/crond start(restart) 啟動與重啟服務(wù)
五:定時任務(wù)的書寫規(guī)范(生產(chǎn)環(huán)境)
1、定時任務(wù)書寫必必須加上一定的注釋信息
2、如果是執(zhí)行shell腳本任務(wù)前要加上/bin/sh
3、在指定用戶下執(zhí)行相關(guān)任務(wù),批量腳本(echo "腳本規(guī)則">>/var/spool/cron/root)
4、定時任務(wù)(腳本任務(wù))的結(jié)尾加上>dev/null 2>&1將一些不必要的輸出信息(錯誤或標準輸出)丟到空設(shè)備中,也就是默認不輸出不必要的信息
>重定向
>或1> 輸出重定向(正確的結(jié)果)>> 或1>>
2>或2>>錯誤重定向(錯誤的結(jié)果)
<或<0 1 ,<< 或 <<0 輸入重定向
5、生產(chǎn)任務(wù)程序不要隨意輸出
tar zcf etc.tar.gz /etc >>tar.etc.log 2>&1
6、命令或程序最好寫進腳本
命令程序要使用絕對路徑,然且把腳本寫到定時任務(wù)中,用到系統(tǒng)環(huán)境變量時要重新定義
7、定時任務(wù)執(zhí)行的腳本要規(guī)范路徑(/server/scripts一般默認路徑)
六:配置定時任務(wù)操作規(guī)范
1、事先在命令行中操作,命令執(zhí)行成功后復制命令進腳本中,減少書寫錯誤
2、然后測試腳本執(zhí)行,腳本測試成功后,復制腳本的規(guī)范路徑到定時任務(wù)中
3、實際生產(chǎn)環(huán)境中,事先要在測試環(huán)境中測試,然后應(yīng)用到實際生產(chǎn)環(huán)境中去
七:實戰(zhàn)例子
1、每分鐘將name追加到/server/log/name.log 這個文件中
#####print name to log everyday 2016-08-08
* * * * * echo "name">>/server/log/name.log
[root@Centos log]# date
Wed Aug 24 10:57:17 CST 2016
[root@Centos log]# cat /server/log/name.log
name
name
[root@Centos log]# date
Wed Aug 24 10:58:18 CST 2016
[root@Centos log]# cat /server/log/name.log
name
name
name
測試此定時任務(wù)已成功執(zhí)行
2、每周六、周日,9:00,14:00執(zhí)行/server/scrpts/name.sh這個腳本,腳本的內(nèi)容是打印當天的日期隨意追加到一個文件里
按照書寫規(guī)范一步步來寫這個定時任務(wù)
腳本內(nèi)容
date %F>>name.txt
編輯腳本
vi name.sh
date %F>>name.txt
腳本全路徑執(zhí)行測試
/bin/sh /server/scrpts/name.sh
書寫定時任務(wù)
0 09,14 * * 6,7 /bin/sh /server/scrpts/name.sh
編輯定時任務(wù)文件
crontab -e
###one shell by yuw001 2016-08-10
0 09,14 * * 6,7 /bin/sh /server/scrpts/name.sh >dev/null 2>&1
到此,關(guān)于“Linux系統(tǒng)定時任務(wù)怎么配置”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。