function GetTimeStampFromLogFile($file_name) { $cmd = "tail {$file_name}"; exec($cmd, $logs_arr); $arr_len = count($logs_arr); var_dump($logs_arr); for ($i = $arr_len - 1; $i >= 0; --$i) { if (strncmp($logs_arr[$i], '201', 3) == 0) { // log "2011-12-06 15:54:21 " Trace("find a log :" . $logs_arr[$i]); $str = str_replace('-', '', $logs_arr[$i]); $str = str_replace(' ', '', $str); $str = str_replace('\\t', '', $str); $str = str_replace(':', '', $str); $str = substr($str, 0, 14); Trace("log time stamp: {$str}"); return MktimeFromString($str); } } SendWarningEMail(__FUNCTION__ . " ERROR. The monitor script working abnormal, please check it!", __FILE__ . " work abnormal"); Trace(__FUNCTION__ . ' Error!!'); return time(); }
<?php #----------------------- #check step1: $expected_count = 16; if (FALSE == CheckProcessCount(16, $accutual_count)) { SendWarningEMail("The midbuilder process count={$accutual_count}, but we expected {$expected_count}!!"); die; } Trace("Monitor OK!"); #################################################################################### ### Functions #################################################################################### function CheckProcessCount($expected_count, &$accutual_count) { $cmd = "ps aux | grep midbuilder | grep -v grep | wc -l"; $ret = exec($cmd, $output_arr); #var_dump($output_arr); $accutual_count = (int) trim($output_arr[0]); if ($accutual_count != $expected_count) { return FALSE; } return TRUE; } function SendWarningEMail($message, $subject = 'MID build monitor failed!!!') { #$maillist = 'weizili@360.cn xiangyong@360.cn yuanruifeng@360.cn hemanbin@360.cn'; $maillist = '*****@*****.**'; $hostname = php_uname('n'); $ret = mail($maillist, $subject, $message); if ($ret == FALSE) {