-
crond 是Linux下用周期性的執行某種任務或者等待處理某些事件的一個守護進程,crond 進程會每分鍾定期檢查是否有要執行的任務,如果有要執行的任務則自動執行該任務
-
Linux 下的任務調度
- 系統任務調度:系統周期性所要執行的工作,如:寫緩存數據到硬盤、清理日志等。系統任務調度的配置文件 /etc/crontab
- 用戶任務調度:用戶定期要執行的工作,比如數據庫備份、定時郵件提醒等。所有用戶定義的crontab文件都保存在/var/spool/cron目錄中。文件名與用戶名一致。
-
crontab 文件的含義
用戶所建立的crontab文件中,每一行代表一項任務,每行的每個字段代表一項設置,共分六個字段,前五段是時間設定段,第六段是要執行的命令段
minute hour day month week command
在以上各個字段中,還可以使用以下特殊字符: 星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。 逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9” 中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6” 正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鍾執行一次
-
crontab 服務
- service cron start //啟動服務
- service cron stop //關閉服務
- service cron restart //重啟服務
- service cron reload //重新載入配置
- service cron status //查看服務狀態
-
查看服務是否已經運行用 ps -ax | grep cron
-
crontab命令選項:
- -u指定一個用戶
- -l列出某個用戶的任務計划
- -r刪除某個用戶的任務
- -e編輯某個用戶的任務
-
新增任務調度
- 在命令行輸入: crontab -e 然后添加相應的任務,wq存盤退出。
- 直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。
-
查看任務調度
crontab -l //列出當前的所有調度任務 crontab -l -u jp //列出用戶jp的所有調度任務
-
刪除任務調度
crontab -r //刪除所有任務調度工作
-
利用任務調度執行Shell腳本,在Shell腳本中執行PHP文件,可以做到每秒執行一次PHP文件
-
假設腳本為 aaa.sh (一定要給該文件可執行的權限) 內容為:
#!/bin/bash int=1 while(( $int<=60 )) do php /var/www/html/index.php echo $int let "int++" sleep 1 done
-
PHP文件(如果執行不成功可以嘗試給該文件授權為755) 內容為:
<?php echo "this is zhuchenglin's website!";
-
執行如下命令:
-
sudo corntab -e 編輯定時任務
內容,加上下面內容(里面是絕對路徑):* * * * * sh /var/www/html/aaa.sh >> /var/www/html/crontab.log #后面將輸出的內容重定向到日志文件中是為了看定時任務是否執行
-
編輯好后,保存並退出
-
重啟cron服務
service cron restart
-
過大概一分鍾后查看日志文件內是否有內容 (盡量給該日志文件足夠的權限)
cat /var/www/html/crontab.log
-
-
注:本文參考:Linux定時任務crontab命令詳解及 linux定時任務的設置 crontab 配置指南
如需轉載請注明出處:http://www.cnblogs.com/zhuchenglin/p/8758444.html