Я просто пишу этот сценарий, однако сценарий выводит только один результат, а не результаты со всех устройств.Я полагаю, что моя ошибка в разделе печати, но я не смог выяснить.
Примечание: - в файле хоста есть список из 30 устройств, но скрипт напечатает результат только для последнего устройства.
#!/usr/bin/perl
$host_file = "/usr/local/bin/test/host2";
open (PACKETLOSS,"$host_file") or die "Cannot Open Extracted host file";
# Put Extracted data into an array
@extracted_array=<PACKETLOSS>;
chomp(@extracted_array);
foreach(@extracted_array) {
@words = split;
$host = $words[0];
}
$extracted_array[$ping_idx] = `/usr/sbin/ping -s -t 10 $host 56 2 2>&1`;
$ping_idx++;
($packet_loss) = ($ping =~ m/packets received, (\d+)% packet loss/);
($round_trip) = ($ping =~ m/round-trip.*\(ms\).*min\/avg\/max\/stddev = \d+\.\d+\/(\d+\.\d+)\/.*/);
print " $host $round_trip ms Average Latency and $packet_loss Packet loss\n";