Linux Cron 定時任務


目標:

通過crontab命令在Linux系統設置定時任務

 

crontab命令

-u <user> define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-V print version and exit
-x <mask> enable debugging

 

准備定時任務的文件 /home/demo/cron-job

這個文件一定要是Unix(LF)格式,不能是Windows(CR LF)格式會導致定時任務執行失敗

15 3 * * *  /bin/sh /home/demo/restart.sh

這種方式可能會手動執行restart.sh沒問題,但是定時任務不生效,缺少環境變量導致。

在shell中執行時是能夠找到環境變量的,但是在crontab中,它是不會自己導入環境變量的,需要我們指定 . /etc/profile 就是導入環境變量。並將所有路徑都寫成絕對路徑。

15 3 * * * ./etc/profile; /bin/sh /home/demo/restart.sh
15 4 * * * ./etc/profile; /bin/sh /home/demo/restart.sh

  

通過文件給用戶root設置定時任務

sudo crontab -u root /home/demo/cron-job

  

直接命令行修改用戶root定時任務

sudo crontab -u root -e

  

查看用戶roog的定時任務

sudo crontab  -u root -l

 

增加了crontab任務后,在/var/spool/cron目錄下會有一個賬號命名的文件。該文件的內容就是剛賬號的crontab任務。

 

對crontab問題的定位方法:

1.在crontab文件最后一行加入一個測試任務,如: * * * * * root echo “hello world” >> /root/test_cron 每分鍾寫一條,很快就能看出是不是crontab中語法的問題。

2.查看日志文件,定時任務的日志文件一般是/var/log/cron,查看下這個文件的最后幾行就能知道定時任務是不是完全都停掉了,是不是在執行過程中遇到了什么問題。

  

參考

Linux下定時任務的查看及取消

【linux】crontab無效解決辦法

 


免責聲明!

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



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