我想創建一個系統來監視使用PHP的Minecraft服務器。然後它會定期(每10分鐘)檢查一次服務器的狀態。如果服務器無法訪問,它將花費多長時間,然後將其存儲在數據庫中。正常運行時間監視器PHP
我已經創建了用於檢查服務器狀態的代碼,但是在服務器關閉多久的時間中掙扎。我可以通過什麼方式來確定停機時間?
我想創建一個系統來監視使用PHP的Minecraft服務器。然後它會定期(每10分鐘)檢查一次服務器的狀態。如果服務器無法訪問,它將花費多長時間,然後將其存儲在數據庫中。正常運行時間監視器PHP
我已經創建了用於檢查服務器狀態的代碼,但是在服務器關閉多久的時間中掙扎。我可以通過什麼方式來確定停機時間?
你不能計算的停機時間,我建議,當一個停機時間發生,你檢查一遍在每一分鐘直到正常運行時間,並獲得第一次停機時間和下一次正常運行時間的差異時,這會給您一分鐘的準確性造成的停機時間
可以更新到數據庫的最後up-time
,並用它計算停機時間和每次覆蓋的停機時間,你計算它
對於這種類型的任務,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(或任何你想要的名字)中修補你的狀態檢查代碼並將這些數據插入到數據庫中。我沒有足夠的信息來提供計算時間的代碼。你的數據結構是什麼?你如何與你的數據庫進行交互?
爲什麼不使用nagios或其他監控工具呢?你可以使用你的腳本作爲插件,並且該工具將關心統計/一切。 –
你有什麼樣的心跳? HTTP,TCP,UDP,ICMP .. – DanFromGermany
因爲我需要將這些信息公開顯示給用戶。 – Brodie