定時任務crond服務


Linuxcrontab定時任務詳解

crontab命令是被用來提交和管理用戶的需要周期性執行的任務,與Windows下的計划任務類似,系統安裝完成后,默認安裝此服務,並且會自啟動crond進程,每分鍾定期檢查要執行的任務。

一、語法

crontab  選項   參數(指要執行任務的crontab文件)

-e 編輯該用戶的計時器設置

-l 列出該用戶的計時器設置

-r 刪除該用戶的計時器設置

-u 用戶名稱  指定要設定計時器的用戶名稱

 

crontab文件含義(六段):分 時 日 月 周 [要執行的命令]

 

 

星號* 代表所有可能的值

逗號,  指定一個列表范圍

中杠-  指定一個整數范圍

正斜線/ 指定時間的間隔頻率

 

crontab -e 編輯該用戶的定時任務或者使用vim /var/spool/cron/root編輯該用戶的定時任務

 

crontab -l 查看定時任務

 

 

crontab -r  刪除所有定時任務

 

 

二、crond服務
  crond是一個linux下 的定時執行工具,可以在無需人工干預的情況下運行 作業。
  service crond start    //啟動服務
  service crond stop     //關閉服務
  service crond restart  //重啟服務
  service crond reload   //重新載入配置
  service crond status   //查看服務狀態 

       ntsysv    //查看是否設置為開機自啟動

      chkconfig -level 35 crond on //加入開機自啟動

三、任務調度

  Linux下的任務調度分為兩類:系統任務調度和用戶任務調度。

  系統任務調度:系統周期性所要執行的工作,比如寫緩存數據到硬盤,存放在/etc目錄下的crontab文件中。

  用戶任務調度:用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒,存放在/var/spool/cron目錄中,其文件名與用戶名一致。

  使用者權限文件如下:

  /etc/cron.deny   該文件中所列用戶不允許使用

   

  /etc/cron.allow  該文件中所列用戶允許使用crontab命令

  /var/spool/cron/ 所有用戶crontab文件存放的目錄,以用戶名命名

四、案例解析

  1、每分鍾向/root/test/test.log文件打印輸出日期

    */1 * * * * echo `date` >>/root/test/test.log

  2、每分鍾執行一個shell腳本(規范寫法:先在shell文件里編寫需要執行的命令)

    */1 * * * * /bin/sh /root/server/scripts/tar.sh >/dev/null 2>&1

  3、每條任務調度執行完畢,系統都會將任務輸出信息通過電子郵件的形式發送給當前系統用戶久而久之文件會變得很大,可能會影響系統的正常運行。

     

  /dev/null 2>&1”表示先將標准輸出重定向到/dev/null,然后將標准錯誤重定向到標准輸出,由於標准輸出已經重定向到了/dev/null,

  因此標准錯誤也會重定向到/dev/null,這樣日志輸出問題就解決了。

四:企業生產場景如何調試crontab定時任務

  (1)增加執行任務頻率調試任務(某些任務不能用於生產環境,沒有測試機會)

  代碼發布:個人開發環境 -- 辦公測試環境 -- IDC機房測試環境 -- IDC正式環境(分組,灰度發布)

  (2)調整系統時間調試任務(不能直接用於生產環境),保持五分鍾

  (3)通過腳本日志輸出調試定時任務

  (4)注意一些任務命令帶來的問題

  (5注意環境變量導致的定時任務故障(java環境變量問題: http://oldboy.blog.51cto.com/2561410/1541515

  (6通過crond定時任務服務日志調試定時任務(/var/log/cron

 

詳情請閱覽此條博文:https://www.cnblogs.com/ginvip/p/6358071.html?utm_source=itdadao&utm_medium=referral#undefined

 

 


免責聲明!

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



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