Linux之定時任務

2022-02-23 21:51:53 字數 4098 閱讀 8536

crond是linux系統中用來定期執行命令/指令碼或指定程式任務的一種服務或軟體,一般情況下,我們安裝完centos5/6 linux作業系統之後,預設便會啟動crond任務排程服務。

crond服務會定期(預設每分鐘檢查一次)檢查系統中是否有要執行的任務工作,如果有,便會根據其預先設定的定時任務規則自動執行該定時任務工作,這個crond定時任務服務就相當於我們平時早起使用的鬧鐘一樣。

必須保留的啟動服務:

crond:定時任務服務

network:網路服務

rsyslog:日誌服務

sshd:遠端鏈結服務

sysstat:系統監控服務(涉及一系列監控工具)

為什麼要使用定時任務呢?

ls -l /var/log/messages* #

系統的日誌

ls -l /var/log/secure* #

使用者登入日誌

使用者執行的任務工作:某個使用者或系統管理員定期要做的任務工作,例如每隔5分鐘和網際網路上時間伺服器進行時間同步(這是安裝系統基礎優化部分的內容),每天晚上0點備份**站點資料及資料庫資料,一般這些工作需要由每個運維自行設定才行。

echo "

*/5 * * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1

" >> /var/spool/cron/root

可通過上面的命令設定每5分鐘執行一次。每次將網際網路時間同步到本地linux系統。

crontab -l 檢視當前使用者的定時任務配置。*號 下面會詳講~~

time.nist.gov是ntp伺服器位址 time.windows.com,微軟自家的時間伺服器。 更多請參考 ==> 國內常用ntp伺服器位址及ip

crontab(命令):正如前面所說的這個命令可以週期性的執行任務工作,例如:每五分鐘做一次伺服器時間同步。要執行crontab這個命令,也需要啟動乙個服務crond才行。這個crontab命令是生產工作中最常用到的命令,請大家務必掌握。

1、開機自啟動crond服務

2、此時此刻服務的狀態(檢視,開啟,關閉)

3、如何檢視程序

通過crontab我們可以在固定的間隔時間執行指定的系統指令或script指令碼。時間間隔的單位可以是分鐘,小時,日,月,周及以上的任意組合(注意:日和周不要組合)。crond服務通過crontab命令可以很容易的實現週期性的日誌分析或資料備份等企業運維場景工作

使用者許可權及定時任務檔案

檔案說明

/etc/cron.deny(拒絕)

該檔案中所列使用者不允許使用crontab

/etc/cron.allow(允許)

該檔案優先順序高於cron.deny(預設不存在,一般不用)

/var/spool/cron/

所有使用者crontab配置檔案預設都存在此目錄,檔名以使用者名稱命名

[root@chengliang ~]#

cat /etc/cron.deny

zcl[root@chengliang~]#

su - zcl

[chensiqi@chengliang~]$ crontab -l

you (chensiqi) are

notallowed to use this program (crontab)

see crontab(1) for

more information

[zcl@chengliang~]$ crontab -e

you (chensiqi) are

notallowed to use this program (crontab)

see crontab(1) for more information

crontab 實際上就是在操作/var/spool/cron/當前使用者這樣的檔案

預設情況下,當使用者建立定時任務規則後,該規則記錄對應的配置檔案會存在於/var/spool/cron中,其crontab配置檔案對應的檔名與登入的使用者名稱一致,如:root使用者的定時任務配置檔案為/var/spool/cron/root

[root@chengliang ~]#

ls /var/spool/cron/

root #

預設是沒有的,只有建立了定時任務才有

[root@chengliang ~]#

cat /var/spool/cron/root

*/5 * * * * /sbin/ntpdate time.windows.com >/dev/null 2>&1

crontab定時任務的書寫格式很簡單,使用者的定時任務規則一般分為6個段(每個段通過空格來分隔,系統的定時任務為/etc/crontab,分為7個段,空格來分隔),前五段為時間的設定段,第六段為所要執行的命令或指令碼任務段

1、cmd為要執行的命令或指令碼,例如:/bin/sh /server/scripts/chensiqi.sh

2、每個列之間必須要有乙個空格。多個空格可以麼?自己實踐  ==> 經我本人測試有多個空格也可以執行!!

時間記憶口訣:分時日月周

特殊符號含義*

*號,表示任意時間都,實際就是「每」的意思

-減號表示分隔符,表示乙個時間範圍,區間段,如17-19點,例如:每天的17,18,19點的00分執行任務。00 17-19 * * * cmd

,逗號,表示分隔時段的意思例如每天的5點10點00分執行任務,00 5,10 * * * cmd

/nn代表數字,即「每隔n單位時間」,例如:每10分鐘執行一次任務可以寫成/*10 * * * * cmd,其中,/10,的範圍是0-59,因此也可以寫成0-59/10

參考部落格:

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

Linux之定時任務

可以改為如下 僅供參考 shell bin bash path sbin bin usr sbin usr bin mailto root 如果出現錯誤,或者有資料輸出,資料作為郵件發給這個帳號 home 使用者執行的路徑,這裡是根目錄 run parts 01 root run parts etc...

Linux之定時任務

linux 定時任務 實現linux定時任務有 cron anacron at等,這裡主要介紹cron服務。名詞解釋 cron是服務名稱,crond是後台程序,crontab則是定製好的計畫任務表。軟體包安裝 要使用cron服務,先要安裝vixie cron軟體包和crontabs軟體包,兩個軟體包...