Linux中用來定期執行命令或程序任務的一種服務或軟件,目的是爲了滿足週期性執行任務的需求。
crond服務是運行的程序,crontab命令用來設置定時規則的命令
crond服務是企業生產工作中常用的重要服務;上千臺服務器可以使用分佈式定時任務
所有用戶crontab配置文件默認都存放在/var/spool/cron此目錄,文件名以用戶名命名。
=======crontab命令操作語法=======
crontab [option] [-u user]
參數: -r刪除crontab文件內容
-e編輯crontab文件內容
-l查看crontab文件內容
=======crontab語法格式中時間段的含義表=======
=======crontab語法格式中特殊符號的含義表=======
=======注意事項=======
1、爲定時任務規則加必要的註釋
2、命令或程序最好寫到腳本里執行
3、執行的腳本要使用絕對路徑
4、執行shell腳本任務時前加/bin/sh
5、定時任務結尾加 >/dev/null 2>&1
=======>/dev/null 2>&1的作用=======
如果定時任務規範結尾不加 >/dev/null 2>&1, 會有很多垃圾小文件存放於郵件臨時隊列目錄,很容易導致硬盤inode空間被佔滿,從而系統服務不正常。CentOS 5中/var/spool/clientmqueue爲郵件臨時隊列目錄;centos 6系統默認裝的是postfix服務,目錄爲/var/spool/postfix/maildrop。
=======定時任務實例=======
1、每隔2個小時將/etc/services文件打包備份到/server/backup下。
[root@oldboy scripts]# cat >>services.sh<<EOF
> cd /etc/
> /bin/tar -zcf /server/backup/services-$(date +%F-%H).tar.gz services
> EOF
[root@oldboy scripts]#crontab –e
#services backup each 2 Hour
00 */2 * * * /bin/sh /scripts/services.sh >/del/null 2>&1
======每5分鐘執行一次服務器時間同步=======
[root@oldboy scripts]# vi ntp.sh
#!/bin/sh
/usr/sbin/ntpdate ntp1.aliyun.com
[root@oldboy scripts]#crontab –e
#time sync by xhua 20160529
*/5 * * * * /bin/sh /scripts/ntp.sh >/dev/null 2>&1