Linux定時任務 結合PHP實現實時監控


首先說說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();


免責聲明!

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



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