溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)定時任務(wù)怎么配置

發(fā)布時間:2022-01-15 15:11:46 來源:億速云 閱讀:124 作者:iii 欄目:云計算

這篇文章主要介紹“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>

向AI問一下細節(jié)

免責聲明:本站發(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)容。

AI