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) {