首先說說cron,它是一個linux下的定時執行工具。根用戶以外的用戶可以使用 crontab 工具來配置 cron 任務。
所有用戶定義的 crontab 都被保存在/var/spool/cron 目錄中,並使用創建它們的用戶身份來執行。
要以某用戶身份創建一個 crontab 項目,登錄為該用戶,然后鍵入 crontab -e 命令來編輯該用戶的 crontab。
該文件使用的格式和 /etc/crontab 相同。當對 crontab 所做的改變被保存后,
該 crontab 文件就會根據該用戶名被保存,並寫入文件 /var/spool/cron/username 中。
cron 守護進程每分鍾都檢查 /etc/crontab 文件、etc/cron.d/ 目錄、以及 /var/spool/cron 目錄中的改變。
如果發現了改變,它們就會被載入內存。這樣,當某個 crontab 文件改變后就不必重新啟動守護進程了。
使用方法:
1. 首先在家目錄下創建文件 <用戶名>cron , 例如 tomcron , tom是用戶名
在此文件下輸入需要定期執行的任務,例如
* * * * * /usr/bin/php /home/eko/test/test.php > /home/eko/test/test.log
每分鍾向test.log輸出當前時間
2. 將創建好的任務提交給crontab進程
eko@ubuntu:~$ crontab ekocron
此時輸入命令 : crontab -l 可以查看已經開啟的定時任務
同時在 /var/spool/cron/ 目錄下會生成一個 eko( 用戶名命名) 的文件
3. 編輯任務
eko@ubuntu:~$ crontab -e
4. 刪除任務
eko@ubuntu:~$ crontab -r
刪除任務會刪除/var/spool/cron/下對應文件
創建任務格式
分鍾 小時 日 月 星期 命令 * * * * * *
# Use the hash sign to prefix a comment # +—————- minute (0 – 59) # | +————- hour (0 – 23) # | | +———- day of month (1 – 31) # | | | +——- month (1 – 12) # | | | | +—- day of week (0 – 7) (Sunday=0 or 7) # | | | | | # * * * * * command to be executed
“*”代表取值范圍內的數字, “/”代表”每”, “-”代表從某個數字到某個數字, “,”分開幾個離散的數字
結合PHP監聽端口,如果服務掉線,則發出警告
const PORT = 8811; public function listening() { $shell = "netstat -anp 2>/dev/null | grep ". self::PORT . " | grep LISTEN | wc -l"; $result = shell_exec($shell); if($result != 1) { // 發送報警服務 郵件 短信 /// todo echo date("Ymd H:i:s")."error".PHP_EOL; } else { echo date("Ymd H:i:s")."succss".PHP_EOL; } } listening();