PHP рд▓рд┐рдирдХреНрд╕ рд╕рд░реНрд╡рд░ рдЗрдирдмрд╛рдЙрдВрдб / рдЖрдЙрдЯрдмрд╛рдЙрдВрдб рдЕрдиреБрдкрд╛рдд рдмреИрд▓реЗрдВрд╕рд░

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рд╕реЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдкрд╛рдпрд╛ рдерд╛, рдЕрднреА рднреА рдРрд╕реЗ рдкреНрд░рджрд╛рддрд╛ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрд╕реАрдорд┐рдд рдЯреИрд░рд┐рдл рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдпрд╛рддрд╛рдпрд╛рдд рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдкрд╛рдд рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдорд╛рд╕реНрдХреЛ рдХреЗ рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рдХреЙрд▓реЛрдХреЛрдЯрд┐рдВрдЧ рдкрд░ рд╕рд░реНрд╡рд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЗрдирдХрдорд┐рдВрдЧ (рдЗрд╕ рддрд░рд╣ рдХреЗ рдореЛрдбрд╝ рдХреЗ рд▓рд┐рдП рдЦреЗрдж) рд╕реЗ рдХрдо рд╕реЗ рдХрдо 4 рдЧреБрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдЕрдиреБрдкрд╛рдд рдкреНрд░рддрд┐ рджрд┐рди рдФрд░ рдХреБрд▓ рдкреНрд░рддрд┐ рдорд╛рд╣ рджреЛрдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рднреА рдЙрд▓реНрд▓рдВрдШрди рдареАрдХ рд╣реИред

рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ, рд╕рд░реНрд╡рд░ рдкрд░ рдмреИрдХрдЕрдк рдХреЗ рдЖрд╡рдзрд┐рдХ рдереЛрдХ рдЕрдкрд▓реЛрдб рдХреЗ рдХрд╛рд░рдг рдЕрдиреБрдкрд╛рдд рдХреЛ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ (рдЯрдордЯрдо рднреЗрдЬрд╛ рдЧрдпрд╛, 4 рдЧрд┐рдЧ рдбрд╛рдЙрдирд▓реЛрдб) - рдердХрд╛ рд╣реБрдЖред



рддрдм рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдПрдХ рдмрд╛рд░ рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдкрд░ рдореИрдВрдиреЗ рдПрдХ рд╢-рд▓рд┐рдкрд┐ рдХреА рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдЖрджрд┐рдо рд▓рд┐рдкрд┐ рджреЗрдЦреА рдереА, рдЬреЛ рдЦреБрдж рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рддреА рдереАред рддрдм рдмрдЪрд╛ рдирд╣реАрдВ, рдЕрдм рдирд╣реАрдВ рдЦреЛрдЬ рд╕рдХрд╛ред рдореБрдЭреЗ рдЦреБрдж рд▓рд┐рдЦрдирд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдо рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдбрд╛рд▓ рджрд┐рдпрд╛ - рд╢рд╛рдпрдж рдХреЛрдИ рдХрд╛рдо рдореЗрдВ рдЖрдПред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗрд╡рд▓ рдЙрдмрдВрдЯреВ рдХреЗ рддрд╣рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╢рд┐рдо рдкрд░ рдПрдХ рдЖрджрд┐рдо рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреИрдирд┐рдХ рдФрд░ рдорд╛рд╕рд┐рдХ рд╕рд╣рд╕рдВрдмрдВрдз рджреЛрдиреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреА рд╣реИ, рд▓реЙрдЧ рд░рдЦрддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреА рдкрд╣рдЪрд╛рди рд╕реЗ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЖрдХрд╛рд░ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рдирдХрд▓реА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓рдВрдмрд╛рдИ рдЕрдВрддрд░рд╛рд▓ рдереНрд░реЛ рдХреЗ рдмреАрдЪ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ)ред рдПрдХ рдФрд░ рдЕрдВрддрд░ (рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╛рдЗрдирд╕ рд╕рд╛рдЗрди рдХреЗ рд╕рд╛рде) - рдЕрд╕реАрдорд┐рдд рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдиреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдк рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ ssh рдХрдиреЗрдХреНрд╢рди рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЕрдкрдиреЗ рд╣реЛрдо рдЪреИрдирд▓ рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЕрдкрдиреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ $ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, $ рд▓реЙрдЧрдлрд╝рд╛рдЗрд▓ рдФрд░ $ рд╕рд░реНрд╡рд░ рдЪрд░ рдореЗрдВ рд░рдЦреЗрдВред
$ рд╕рд░реНрд╡рд░ рдЪрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ssh рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
рдпрд╣реА рд╣реИ, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "ssh my-host.ip-ip.org -p 1022 -i /home/user/.ssh/my-key" рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ, рдореИрдВ рдЕрдкрдиреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдиреЛрдб (рд╕рд╢рд░реНрдд рдбреЗрдЯрд╛) рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд┐рдП рдмрд┐рдирд╛ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдмреЗрд╢рдХ)ред
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, /etc/rc.local рд╕реЗ) рдпрд╛ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

<?php $interface="eth0"; //    $server="my-host.no-ip.org -p 1022 -i /home/user/.ssh/my-key"; //    $logfile="/usr/local/logs/trafic-balancer.log"; //       ,   logrotate   $curdate=0; function echolog($str) { global $logfile; file_put_contents($logfile, $str, FILE_APPEND); echo($str); } echolog("\n".date('r')." \t\n"); while(true) { $f=@fopen("/proc/net/dev", "r"); $stat=null; while($str=fgets($f)) { if(strpos($str, $interface)!==false) { $stat=$str; break; } } fclose($f); if($stat) { $stat=preg_replace("/\s+/", " ", $stat); $nums=explode(" ", $stat); //       $rx_g=round($nums[2]/1024/1024); $tx_g=round($nums[10]/1024/1024); $delta_g=$rx_g*4-$tx_g; //   if($curdate!=date('j')) //    { if($curdate) echolog("\n".date('r')." \t  $curdate : RX:$rx_d Mb, TX:$tx_d Mb, : $delta_d Mb\n"); $curdate=date('j'); $rx_d=0; $tx_d=0; $rx_s=$rx_g; $tx_s=$tx_g; } $rx_d=$rx_g-$rx_s; $tx_d=$tx_g-$tx_s; $delta_d=$rx_d*4-$tx_d; $delta=max($delta_g, $delta_d); if(($delta>0)&&(date('G')>8)) { if($delta>1000) //   1,     $size=round(rand(1000, min($delta/2, 5000))); //       ,     else $size=round(rand($delta*2, $delta*3)); //          echolog("\n".date('r')." \t:  : $delta_g Mb,  : $delta_d Mb,  $size Mb\n"); passthru("dd if=/dev/zero bs=1M count=$size | ssh $server 'cat > /dev/null'"); } else echolog('.'); } else echolog("\n".date('r')." \t  !\n"); sleep(round(rand(10, 600))); } ?> 

Source: https://habr.com/ru/post/In140697/


All Articles