Linux 定時任務調度(crontab命令)


  1. crond 是Linux下用周期性的執行某種任務或者等待處理某些事件的一個守護進程,crond 進程會每分鍾定期檢查是否有要執行的任務,如果有要執行的任務則自動執行該任務

  2. Linux 下的任務調度

    1. 系統任務調度:系統周期性所要執行的工作,如:寫緩存數據到硬盤、清理日志等。系統任務調度的配置文件 /etc/crontab
    2. 用戶任務調度:用戶定期要執行的工作,比如數據庫備份、定時郵件提醒等。所有用戶定義的crontab文件都保存在/var/spool/cron目錄中。文件名與用戶名一致。
  3. crontab 文件的含義
    用戶所建立的crontab文件中,每一行代表一項任務,每行的每個字段代表一項設置,共分六個字段,前五段是時間設定段,第六段是要執行的命令段
    minute hour day month week command
    Crontab格式說明

     	在以上各個字段中,還可以使用以下特殊字符:
     	
     	星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。
     	
     	逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
     	
     	中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”
     	
     	正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鍾執行一次
    
  4. crontab 服務

    1. service cron start //啟動服務
    2. service cron stop //關閉服務
    3. service cron restart //重啟服務
    4. service cron reload //重新載入配置
    5. service cron status //查看服務狀態
  5. 查看服務是否已經運行用 ps -ax | grep cron

  6. crontab命令選項:

    1. -u指定一個用戶
    2. -l列出某個用戶的任務計划
    3. -r刪除某個用戶的任務
    4. -e編輯某個用戶的任務
  7. 新增任務調度

    1. 在命令行輸入: crontab -e 然后添加相應的任務,wq存盤退出。
    2. 直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。
  8. 查看任務調度

    crontab -l //列出當前的所有調度任務
    crontab -l -u jp   //列出用戶jp的所有調度任務
    
  9. 刪除任務調度

    crontab -r   //刪除所有任務調度工作
    
  10. 利用任務調度執行Shell腳本,在Shell腳本中執行PHP文件,可以做到每秒執行一次PHP文件

    1. 假設腳本為 aaa.sh (一定要給該文件可執行的權限) 內容為:

      #!/bin/bash
      int=1
      while(( $int<=60 ))
      do
      	php /var/www/html/index.php 
          echo $int
           let "int++"
           sleep 1
      done
      
    2. PHP文件(如果執行不成功可以嘗試給該文件授權為755) 內容為:

      <?php
      echo "this is zhuchenglin's website!";
      
    3. 執行如下命令:

      1. sudo corntab -e 編輯定時任務
        內容,加上下面內容(里面是絕對路徑):

        * * * * * sh /var/www/html/aaa.sh >> /var/www/html/crontab.log
        #后面將輸出的內容重定向到日志文件中是為了看定時任務是否執行
        
      2. 編輯好后,保存並退出

      3. 重啟cron服務

        service cron restart
        
      4. 過大概一分鍾后查看日志文件內是否有內容 (盡量給該日志文件足夠的權限)

        cat /var/www/html/crontab.log 
        

注:本文參考:Linux定時任務crontab命令詳解 linux定時任務的設置 crontab 配置指南
如需轉載請注明出處:http://www.cnblogs.com/zhuchenglin/p/8758444.html


免責聲明!

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



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