2014-01-30 63 views
0

我想創建一個系統來監視使用PHP的Minecraft服務器。然後它會定期(每10分鐘)檢查一次服務器的狀態。如果服務器無法訪問,它將花費多長時間,然後將其存儲在數據庫中。正常運行時間監視器PHP

我已經創建了用於檢查服務器狀態的代碼,但是在服務器關閉多久的時間中掙扎。我可以通過什麼方式來確定停機時間?

+2

爲什麼不使用nagios或其他監控工具呢?你可以使用你的腳本作爲插件,並且該工具將關心統計/一切。 –

+0

你有什麼樣的心跳? HTTP,TCP,UDP,ICMP .. – DanFromGermany

+1

因爲我需要將這些信息公開顯示給用戶。 – Brodie

回答

1

你不能計算的停機時間,我建議,當一個停機時間發生,你檢查一遍在每一分鐘直到正常運行時間,並獲得第一次停機時間和下一次正常運行時間的差異時,這會給您一分鐘的準確性造成的停機時間

+0

我採納了這個想法並且編碼它正確地工作。謝謝 – Brodie

+0

你的歡迎,我以前也有同樣的問題,祝你好運, –

+0

@Brodie,介意分享你的代碼? –

0

可以更新到數據庫的最後up-time,並用它計算停機時間和每次覆蓋的停機時間,你計算它

0

對於這種類型的任務,crontab是一個很棒的工具:將在您設置時執行已定義的命令。

您可以使用您的名爲cron作業的isp cpanel工具。從那裏創建一個cron作業非常簡單。只需輸入下面三行的命令部分。

,如果你不能使用這個工具,或者選擇直接寫入你的crontab,這些線是得到命令(http://www.pantz.org/software/cron/croninfo.html):

# Minute   Hour Day of Month  Month   Day of Week  Command  
# (0-59)   (0-23)  (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)     
0,10,20,30,40,50  *   *    *    *   php /home/yourdomain/public_html/test.php 

我的test.php:

mail('[email protected]','time();',date('H:i:s',time())); 

這個郵件每十分鐘一次。從那裏你在test.php(或任何你想要的名字)中修補你的狀態檢查代碼並將這些數據插入到數據庫中。我沒有足夠的信息來提供計算時間的代碼。你的數據結構是什麼?你如何與你的數據庫進行交互?