linux定時任務crond服務應用指南
Linux的定時任務crond(crontab)服務
1、crond是什麼?
crond是linux系統中用來定期執行指令或者指定程式的程式(軟體)
2、秒級任務
(1)crond需要方式實作
(2)自己寫守護程序shell循環
(3)Quartz也可實作妙計任務
3、定時任務的作用
伺服器:7*24小時開機提供服務是網站的基本特征
有重要資料:提高備份周期和備份數量
Linux的定時任務分類
linux系統中定時任務排程的工作可以分為一下兩種
(1)系統自身的定期執行的任務
系統周期性自行執行的任務工作。如輪詢系統日志、備份系統資料、清理系統緩存等
[[email protected] ~]# ls -l /var/log/messages* 系統的日志
-rw-------. 1 root root 201123 6月 28 14:44 /var/log/messages
-rw-------. 1 root root 200796 6月 26 03:49 /var/log/messages-20160626
系統自動輪詢任務的設定配置路徑:
[[email protected] ~]# ls -l /etc/ |grep cron
-rw-------. 1 root root 541 11月 23 2013 anacrontab
drwxr-xr-x. 2 root root 4096 6月 24 18:13 cron.d
drwxr-xr-x. 2 root root 4096 9月 27 2011 cron.daily
-rw-------. 1 root root 0 11月 23 2013 cron.deny
drwxr-xr-x. 2 root root 4096 9月 27 2011 cron.hourly
drwxr-xr-x. 2 root root 4096 9月 27 2011 cron.monthly
-rw-r--r--. 1 root root 457 9月 27 2011 crontab
drwxr-xr-x. 2 root root 4096 9月 27 2011 cron.weekly
(2)使用者執行的定時任務
某個使用者或系統管理者定期要做的任務工作,使用者執行放入任務工作,也就是我們運維管理人員執行的任務工作。
例如:伺服器時間同步
[[email protected] ~]# crontab -l #檢視定時任務
time sync by solin
*/5 * * * * /sbin/ntpdate time.windows.com >/dev/null 2>&1
2、Linux系統下定時任務軟體種類
(1)at适合執行一次就結束的排程任務。依賴服務atd
(2)anacron适合于非7*24小時開機的服務準備。anacron并不能指定具體時間執行任務工作,而是以天為周期或者在系統每次開機後執行的任務工作,它會檢測伺服器停機期間應該執行,但沒有執行的任務工作,并将該任務執行一遍。
(3)crond,crond服務預設情況(每分鐘),會檢查系統中是否有需要執行的定時任務,若有會根據定義好的規則來執行這個定時任務。
注:
(1)crond服務是運作的程式,而crontab指令使用者用來設定定時規則的指令
(2)crond服務是企業生産工作中常用的重要服務,at和anacron很少使用,可以忽略。
定時任務crond使用說明
1、文法指令
crontab [-u user] {-l | -e | -r |-i}
檢視幫助
[[email protected] ~]# crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
2、指令說明
通過crontab我們可以在固定的間隔時間執行指定的系統指令或script腳本。時間間隔的機關是分、時、日、月、周及以上的任意組合。
3、使用者權限檔案
檔案 說明
/etc/cron.deny #該檔案中所列使用者不允許使用crontab指令
/etc/cron.allow #該檔案中所列使用者允許使用crontab指令,優先于/etc/cron.deny
/etc/spool/cron/ #所有使用者crontab配置檔案預設都存在此目錄,檔案名以使用者名指令
注:
crontab -e = vi /var/spool/cron/root
crontab -l = cat /var/spool/cron/root
4、指令選項說明含義表
-e (edit user's crontab) #編輯crontab檔案内容