1、簡介
crond 是linux下用來週期性的執行某種任務或等待處理某些事件的乙個守護程序,與windows下的計畫任務類似。任務排程分為兩類:系統任務排程和使用者任務排程。
系統任務是由 cron (crond) 這個系統服務來控制的,這個系統服務是預設啟動的。
使用者自己設定的計畫任務則使用crontab 命令。
[root@localhost sugon]# crond --helpcrond: invalid option -- '-'
usage:
crond [options]
options:
-h print this
message
-i deamon runs without inotify support
-m off, or specify prefered client for
sending mails
-n run in
foreground
-p permit any crontab
-p use path="
/usr/bin:/bin
" -c enable clustering support
-s log into syslog instead of sending mails
-x print debug information
2、系統定時任務
系統任務排程:系統週期性所要執行的工作,比如寫快取資料到硬碟、日誌清理等。在/etc/crontab檔案,這個就是系統任務排程的配置檔案。可新增定時任務,這裡我使用命令:gedit /etc/crontab來檢視並新增定時任務,下面是檔案內容。
注:系統定時任務是通過系統服務crond執行的,該服務預設開機啟動。
shell=/bin/bashpath=/sbin:/bin:/usr/sbin:/usr/bin
mailto=root
# for details see man
4crontabs
# 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
3、使用者的定時任務
使用者定時任務的設定執行,我們需要使用到crontab服務,使用時要啟動服務crond,crond服務通過crontab命令實現。
yum install crontabs #安裝crontab
systemctl start crond #啟動服務systemctl stop crond #關閉服務
systemctl restart crond #重啟服務
systemctl reload crond #重新載入配置
systemctl status crond #檢視服務狀態
ntsysv #檢視開啟啟動項
systemctl enable crond #加入開機啟動項
1- 看下crontab命令介紹
[root@localhost sugon]# crontab --helpcrontab: invalid option -- '-'
crontab: usage error: unrecognized option
usage:
crontab [options] file
crontab [options]
crontab -n [hostname]
options:
-u define user
-e edit user'
s crontab
-l list user'
s crontab
-r delete user'
s crontab
-i prompt before deleting
-n set host in cluster to run users'
crontabs
-c get host in cluster to run users'
crontabs
-s selinux context
-x enable debugging
2- 使用者定時任務新增
命令:crontab -e
注:格式同/etc/crontab文件格式。每次編輯完某個使用者的cron設定後,cron自動在/var/spool/cron下生成乙個與此使用者同名的檔案,此使用者的cron資訊都記錄在這個檔案中,這個檔案是不可以直接編輯的,只可以用crontab -e 來編輯。
例如新增指令碼:*/5 * * * * root /home/crontab/check_sersync.sh > /dev/null 2>&1
指令碼解釋:以root使用者每5分鐘執行指令碼/home/crontab/check_sersync.sh,並將錯誤資訊記錄到/dev/null下。
3- 使用者定時任務檢視
使用命令:crontab -l,就可看到剛新增的指令碼了
4- 新增設定完成後,可重新載入配置,並重啟下crond服務
systemctl reload crond #重新載入配置systemctl restart crond #重啟服務
4、許可權檔案
/etc/cron.deny:該檔案中所列使用者不允許使用crontab命令/etc/cron.allow:該檔案中所列使用者允許使用crontab命令
/var/spool/cron/:所有使用者crontab檔案存放的目錄,以使用者名稱命名
/var/log/cron:日誌檔案,執行後記錄可在此檔案中檢視
Liunx系統定時任務時間設定Crontab的格式
第1列分鐘1 59 第2列小時1 23 0表示子夜 第3列日1 31 第4列月1 12 第5列星期0 6 0表示星期天 第6列要執行的命令 下面是crontab的格式 分 時 日 月 星期 要執行的命令 這裡有crontab檔案條目的一些例子 30 21 usr local apache bin a...
ubuntu系統建立定時任務之crontab
cron是乙個linux定時執行工具,可以在無需人工干預的情況下執行作業。在ubuntu server 下,cron是被預設安裝並啟動的。通過 etc crontab檔案,可以看到以下內容 ununtu 通過呼叫 run parts 命令,定時執行四個目錄下的所有指令碼。1 etc cron.hou...
centos定時任務cron
任務指令行包括五個時間日期域,接著乙個使用者域 如果是系統級的任務檔案 其餘的被當做是此任務的命令列。下圖顯示系統級任務檔案中的指令行的格式 例如 1 root usr local nginx logs nginx log.sh 每分鐘執行一次 usr local nginx logs nginx ...