歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Ubuntu 12.04 Server cron定時監控

cron服務在Ubuntu12.04 server裡是默認安裝的。使用crontab -e 命令可以調出你系統中默認的編輯器進行編輯

crontab的命令格式可以參考下面這篇文章,非常不錯:http://www.linuxidc.com/Linux/2007-09/7681.htm 與 http://www.linuxidc.com/Linux/2012-08/67836.htm

我的需求是這樣,系統中已經安裝了nginx服務,啟動命令是 service nginx start

由於nginx比較穩定,我選擇了每分鐘檢查一次的定時任務:

*/1 * * * * /home/dist/monitor/nginx_watcher.sh 

*/1 表示一分鐘運行一次

其他* 表示無設置

我的腳本文件如下:

  1. File Edit Options Buffers Tools Sh-script Help 
  2. #! /bin/bash    
  3. #PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games   
  4. pid_file=/usr/nginx/logs/nginx.pid 
  5. log_file=/home/dist/monitor/watcher.log 
  6.  
  7. if [ ! -f $pid_file ]; then 
  8.     echo "----------------" >> $log_file 
  9.     echo `date` >> $log_file 
  10.     echo "nginx is found stopped, restaring it now" >> $log_file 
  11.     echo "----------------" >> $log_file 
  12.     service nginx start 
  13. fi 

通過檢查nginx的進程id文件是否存在來判斷nginx是否運行,如果沒有運行就調用service nginx start命令。

幾個注意點:

1.執行crontab -e 請在root權限下

2.如果設置完定時任務,不放心,可以通過下面的命令重啟cron服務, 我的經驗是不必。

service cron restart 

3.如果要確保環境變量PATH正確的話,可以在自己的腳本中設置環境變量PATH,然後 export 出來

4.文件路徑請用絕對路徑

5.下面的定時任務可以幫助我們診斷cron服務的環境變量:

* * * * * env > /tmp/env.output 

Copyright © Linux教程網 All Rights Reserved