Heim > Backend-Entwicklung > PHP-Tutorial > php实现连续ping远程服务器脚本

php实现连续ping远程服务器脚本

WBOY
Freigeben: 2016-06-23 13:31:07
Original
915 Leute haben es durchsucht

使用场景:公司的国外服务器访问缓慢,较长时间未访问其资源,导致解析访问缓慢。

脚本作用:持续ping该类服务器,保证中转路由能在业务使用时能够快速响应请求。

<?phpdefine ('LOGTAG', 'ping');declare(ticks = 1);$pid_arr = array();pcntl_signal(SIGQUIT, 'signal_handler');pcntl_signal(SIGTERM, 'signal_handler');function run($servers_info) {    echo "---------- ping task begin ----------";    global $pid_arr;    $index=0;    $name_arr = array();    $ip_arr = array();    foreach( $servers_info as $val) {        $name_arr[$index] = $val['server_name'];        $ip_arr[$index] = $val['server_ip'];        $index++;    }    $worker_count = $index;    $index=0;    while($index < $worker_count)     {        $pid = pcntl_fork();        if($pid == -1) {            die('could not fork');        }         else         {            if($pid) {                $pid_arr[$index] = $pid;            } else {                while(true) {                    handle($name_arr[$index], $ip_arr[$index]);                    sleep(1);                }            }        }        $index++;    }    while (true) {        sleep(1);    }}function handle($name,$ip) {    echo "ping ".$name." ip:".$ip." start!";    exec("ping -c 1000 $ip",$list);    echo "ping ".$name." ip:".$ip." finish!";}function signal_handler($signal) {    global $pid_arr;    if ($signal == SIGQUIT || $signal == SIGTERM)     {        foreach ($pid_arr as $pid) {            posix_kill($pid,SIGTERM);        }        echo ”????? ping task finish ----------";        exit();    }}run();?>
Nach dem Login kopieren



Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage