Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Linux

Скрипт для сортировки адресов по времени пинга до них : Linux

07.05.2024 12:32


23.10.2023 17:14
OlegON
 
Достаточно часто нужно отсортировать какой-то список адресов по скорости доступа к ним, что условно можно считать пингом. Вот в данном случае список адресов в full.lst и отсортированный будет в sorted.lst
Код:
#!/bin/bash
cut -f1 -d' 'full.lst | while read ip
do
    tt=$( ping -c 3 "$ip" | tail -1 | awk '{print $4}' | cut -d '/' -f 2 )
    echo $tt "$ip" >> "/tmp/ipsort.bak"
done

sort -n "/tmp/ipsort.bak" | cut -f2 -d' ' >sorted.lst
rm -f /tmp/ipsort.bak
строго не судите, решение по-быстрому, если у кого-то есть более красивый вариант - прошу поправлять.
23.10.2023 17:54
OlegON
 
Не вытерпела душа перфекциониста, вот покрасивее вариант
Код:
#!/bin/bash
while IFS= read -r i; do
    ip=$(echo $i | cut -f1 -d' ')
    tt=$(ping -c 3 "$ip" | tail -1 | awk '{print $4}' | cut -d '/' -f 2)
    echo "$tt $ip"
done < full.lst | sort -n | cut -d' ' -f2- > sorted.lst
Часовой пояс GMT +3, время: 12:32.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.