php实现连续ping远程服务器脚本
2018-07-20 来源:open-open
脚本作用:持续ping该类服务器,保证中转路由能在业务使用时能够快速响应请求。
<?php define('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(); ?>
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇:PHP 多维数组进行排序
最新资讯
热门推荐