使用PHP製作主機宕機檢測,並傳送Mail通知

2021-07-30 17:17:26 字數 2725 閱讀 2510

這是在公司時候的一段**,宕機檢測的原理,就只有檢測是否能夠ping通主機,如果不通傳送mail,這只是我能想到的辦法,有大神如果能想到更好的檢測辦法,不吝賜教!

ok,廢話少說,翠花,上**!

[php]view plain

copy

<?php  

/*** 檢測主機宕機指令碼,每10秒檢測一次

* 若主機死機會傳送郵件通知,傳送郵件的間距時間為1小時

*/set_time_limit(0);  

define('root'

, dirname(

__file__

) . directory_separator);  

// 檢測的ip位址

$ipaddress

= '45.33.36.121'

;  // 儲存傳送mail的時間的檔案

$file

= root . 

'sendmailtime.txt'

;  // 建立檔案

file_put_contents

($file

, 0);  if(

file_exists

($file

)) 主機宕機警告"

,  'body'

=> 

. date

('y-m-d h:i:s'

),  

'address'

=> [  

[  'name'

=> 

'stronger'

,  'email'

=> 

'[email protected]'

],  

[  'name'

=> 

'李星'

,  'email'

=> 

'[email protected]'

]  ]  

]);  if(

$row

)   

}  }  

sleep(10);  

}  } else

/*** 傳送郵件

* @param type $config

* @return boolean

*/function

sendmail(

$config

= )   

// 收件人

$address

= $config

['address'

];  

if(isset(

$address

['name'

]) && isset(

$address

['email'

]))   

$mail

->addaddress(

$address

['email'

], $address

['name'

]);  

// 收件人

} else

}  }  $mail

->wordwrap = 50;                                 

// 設定自動換行50個字元

// 新增附件

if(isset(

$config

['file'

]) && !

empty

($config

['file'

]))  elseif

(is_array

($config

['file'

]) && !

empty

($config

['file'

]))   

}  }  

$mail

->ishtml(true); 

// 設定郵件格式為html

// 主題

if(isset(

$config

['subject'

]) && !

empty

($config

['subject'

]))   

// 主體內容

if(isset(

$config

['body'

]) && !

empty

($config

['body'

]))   

return

$mail

->send();  

}  /**

* 使用php檢測能否ping通ip或網域名稱

* @param type $address

* @return boolean

*/function

pingaddress(

$address

) ", 

$outcome

, $status

);  

} elseif

(strcasecmp

(php_os, 

'linux'

) === 0) "

, $outcome

, $status

);  

}  if

(0 == 

$status

)  else

return

$status

;  }  

實戰操作主機角色轉移之清除宕機DC的元資料(三)

拓撲 dc.contoso.com 主dc,硬碟格式化了,需要刪除 fileserver.contoso.com 輔助dc,占用角色 犯罪過程 1,開啟cmd輸入 ntdsutil 然後 enter 2 ntdsutil 輸入 metadata cleanup 然後 enter 這一步的意思 進入清...

使用php製作JSONArray

我們都知道在php中可以利用json encode來製作jsonobject型別資料,如 include conn.php bookid get bookid sql select from books view where isbn bookid result mysql query sql if...

使用PHP製作單檔案上傳

單檔案上傳 param string uploaddir 必選引數,上傳檔案存放的目錄 param int maxsize 可選引數,限制上傳檔案大小 param array allowtype 可選引數,限制上傳檔案型別 param bool isimg 可選引數,限制上傳檔案型別是否必須為 re...