centos crontab定時任務用法


一、安裝crond服務

yum -y update yum -y install cronie yum-cron

 

二、crontab任務語法

crontab任務配置基本格式: *   *  *  *  *  command 第1列表示分鍾0~59 每分鍾用 * 或者 */1 表示 第2列表示小時0~23(0表示0點) 第3列表示日期1~31 第4列表示月份1~12 第5列標識號星期0~60,7都可表示星期天) 第6列要運行的命令或執行shell腳本

綜合起來就是: 分鍾(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令

從上面可以看出,crontab最小的時間單位: 1分鍾。如果要每30秒執行一次腳本,要么寫個小腳本,要么在crontab增加延遲。

例子:crontab中增加延遲30秒來實現

a、crontab -e,添加如下內容: */1 * * * * sh && echo "dd" >> /logs/cron-cc.log */1 * * * * sleep 30 && echo "cc" >> /logs/cron-cc.log b、重啟crond systemctl reload crond systemctl restart crond c、查看當前用戶定時任務 crontab -l d、通過日志查看是否生效 tail -f /logs/cron-cc.log

 

案例一:每隔10秒執行一次

##crontab設置的最小時間為每分鍾,實現以秒為單位進行定時任務執行。

*/1 * * * * sh /root/shell/aa.sh
*/1 * * * * sleep 10 && sh /root/shell/aa.sh
*/1 * * * * sleep 20 && sh /root/shell/aa.sh
*/1 * * * * sleep 30 && sh /root/shell/aa.sh
*/1 * * * * sleep 40 && sh /root/shell/aa.sh
*/1 * * * * sleep 50 && sh /root/shell/aa.sh

注意:aa.sh為執行腳本


案例二:每隔20秒執行一次

*/1 * * * * sh /root/shell/aa.sh
*/1 * * * * sleep 20 && sh /root/shell/aa.sh
*/1 * * * * sleep 40 && sh /root/shell/aa.sh

注意:aa.sh為執行腳本

案例三:每隔5分鍾執行一次

*/5 * * * * sh /root/shell/echo.sh


三、crontab常用命令

##查看當前用戶定時任務 crontab -l 調用/var/spool/cron/目錄下相關用戶的定時任務信息 查看定時任務日志 tail -f /var/log/cron systemctl status crond.service systemctl start crond.service systemctl stop crond.service systemctl restart crond.service systemctl reload crond.service 把cron服務加入linux開機自啟動 systemctl enable crond.service systemctl is-enabled crond.service #crond后台的工作情況並過濾出來 ps -ef |grep crond|grep -v grep

 注意:

路徑問題

有些腳本涉及到文件操作,文件路徑不正確也會導致腳本無法正常執行,建議使用絕對路徑,或者在執行腳本時,先進入該腳本的路徑下,在執行。Crontab的command配置如下:

*/1 * * * * cd /root/shell && ./cron.sh

 


免責聲明!

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



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