$ip) { if (in_array($ip, $ipsProcessed)) { continue; } $cmd = 'sudo ufw insert 1 deny from ' . $ip . ' to any' . PHP_EOL; echo "{$key}/{$total} " . $cmd; echo $uas[$key] . PHP_EOL; $output = null; exec($cmd . ' 2>&1', $output, $return_var); echo json_encode($output) . PHP_EOL; echo '--------------' . PHP_EOL; if ($output[0] === 'Rule inserted') { $newRules[] = $ip; } $ipsProcessed[] = $ip; } $totalNew = count($newRules); //echo PHP_EOL . date('Y-m-d H:i:s').' Found ' . $total . PHP_EOL; //echo PHP_EOL . $totalNew . ' New IPs added: ' . implode(', ', $newRules) . PHP_EOL; if ($totalNew) { $timeout = $defaultTimeout/4; $linesCount = intval($defaultLines/4); echo "*** {$totalNew} new rules inserted" . PHP_EOL; } if ($totalNew && !$mySQLIsStopped) { $load = percentloadavg(); echo '*** sys_getloadavg: '.$load[0] . PHP_EOL; if ($load[0] > 0.80) { //exec('/etc/init.d/apache2 restart'); echo '*** STOP MySQL' . PHP_EOL; $mySQLIsStopped = 1; exec('/etc/init.d/mysql stop'); } } else if (empty($totalNew) && $mySQLIsStopped) { echo '*** Start MySQL 1' . PHP_EOL; $mySQLIsStopped = 0; exec('/etc/init.d/mysql start'); $timeout = $defaultTimeout; $linesCount = $defaultLines; }else if($mySQLIsStopped){ $load = percentloadavg(); echo '*** sys_getloadavg: '.$load[0] . PHP_EOL; if ($load[0] < 0.50) { echo '*** Start MySQL 2' . PHP_EOL; $mySQLIsStopped = 0; exec('/etc/init.d/mysql start'); $timeout = $defaultTimeout; $linesCount = $defaultLines; } } if ($totalNew) { echo "*******" . PHP_EOL . PHP_EOL; } sleep($timeout); }