1.安裝 crontabs服務並設置開機自啟
# yum install crontabs (安裝 crontabs)
# systemctl enable crond (設為開機啟動)
# systemctl start crond(啟動crond服務)
# systemctl status crond (查看狀態)
修改任務文件
vi /etc/crontab
crontab文件內容如下:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # 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 #每60分種執行 */60 * * * * root /root/java/test1.sh #每天1點20分 執行 20 1 * * * root /root/java/test2.sh #文件最后一定要留一個空行,不然命名:crontab /etc/crontab會報錯
參數說明:
分鍾(0-59) 小時(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用戶名 要執行的命令
*/30 * * * root /usr/local/mycommand.sh (每天,每30分鍾執行一次 mycommand命令)
* 3 * * * root /usr/local/mycommand.sh (每天凌晨三點,執行命令腳本,PS:這里由於第一個的分鍾沒有設置,那么就會每天凌晨3點的每分鍾都執行一次命令)
0 3 * * * root /usr/local/mycommand.sh (這樣就是每天凌晨三點整執行一次命令腳本)
*/10 11-13 * * * root /usr/local/mycommand.sh (每天11點到13點之間,每10分鍾執行一次命令腳本,這一種用法也很常用)
10-30 * * * * root /usr/local/mycommand.sh (每小時的10-30分鍾,每分鍾執行一次命令腳本,共執行20次)
10,30 * * * * * root /usr/local/mycommand.sh (每小時的10,30分鍾,分別執行一次命令腳本,共執行2次)
保存生效 加載任務,使之生效:
# crontab /etc/crontab
查看任務:
# crontab -l
# crontab -u 用戶名 -l (列出用戶的定時任務列表)
PS:特別注意,crond的任務計划, 有並不會調用用戶設置的環境變量,它有自己的環境變量,當你用到一些命令時,比如mysqldump等需要環境變量的命令,手工執行腳本時是正常的,但用crond執行的時候就會不行,這時你要么寫完整的絕對路徑,要么將環境變量添加到 /etc/crontab 中。