crond 是linux下用週期性的執行某種任務或者等待處理某些事件的乙個守護程序,crond 程序會每分鐘定期檢查是否有要執行的任務,如果有要執行的任務則自動執行該任務
linux 下的任務排程
系統任務排程:系統週期性所要執行的工作,如:寫快取資料到硬碟、清理日誌等。系統任務排程的配置檔案 /etc/crontab
crontab 檔案的含義
使用者所建立的crontab檔案中,每一行代表一項任務,每行的每個字段代表一項設定,共分六個字段,前五段是時間設定段,第六段是要執行的命令段
在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如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存檔退出。
檢視任務排程
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!";
執行如下命令:
* * * * * 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 配置指南 linux定時任務cron
一 cron格式 其格式如下 minute hour day month dayofweek command 分鐘 小時 天 月 天每星期 命令 比如 15 ls 表示每15分鐘執行一次ls 即每個小時的第0 15 30 45 60分鐘執行ls命令 25 8 11 ls 每天8 11點的第25分鐘執...
linux 定時任務排程Cron的用法詳解
在linux中,推薦使用crontab e命令新增自定義的任務 退出後重啟crond程序。複製 示例 etc rc.d init.d crond restart service cron reload 同樣,也可以直接修改 etc crontab檔案來新建任務,etc crontab檔案內容預設如下...
Cron 定時任務
一般系統都會有定時任務存在,比如訂單系統,會根據定時任務來實時同步訂單狀態,同步交易狀態等等。定時任務可以使用quartz 定時任務,也可以自己寫乙個任務排程系統,只要能實現功能就可以。下面我簡單介紹一下quartz 定時任務配置,需要配置三個bean,分別為 quartz,trigger,sche...