centos7 計划任務 定時運行sh


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 中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM