Есть ли способ отсортировать IP-адреса по задержке?

У меня такая же проблема при попытке использовать USB Live CD с Porteus -v4.0rc4 -x86 _64 (, но это случалось и раньше ).

Как ни странно, найти реальное решение этой проблемы кажется почти невозможным. Одним из решений, которое может сработать для вас (, но не для меня ), может быть замена файла vesamenu.c32 таким же файлом из более поздней версии syslinux. Это одно из предложений, с которым я столкнулся, но оно не может быть решением моей проблемы, поскольку syslinux в файле iso, который у меня есть, кажется довольно новым.

0
10.10.2019, 00:18
1 ответ

Вот мое решение для NIS, написанное на bash:

yplist=( $( ypcat ypservers|xargs -n1 host|sed -n '/has.address/s/.*[[:space:]]//p'|sort -u ) )
nearest=( $( for pp in ${yplist[@]}; do ping -q -n -c 5 -i 0.3 $pp|awk -F/ '/^rtt/{printf "%d:",($5*1000)}'; echo $pp; done|sort -n -t: -k1|cut -d: -f2 ) )
printf "ypserver %s\n" ${nearest[@]} >/etc/yp.conf

Это конвейер, который вырос в рассказе, так что вот:

  • $yplist— это массив хостов, который работает как мой исходный список
  • $nearestпо очереди принимает $yplistи pingс
  • вывод pingсужается на awk, чтобы соответствовать только сводной строке
  • небольшой хак :с использованием /в качестве разделителя,avgпуть туда и обратно в мс умножается на 1000, чтобы получить целое значение в мкс
  • последующий -вверх echo $ppпросто вставляет рассматриваемый IP-адрес в конец строки
  • весь цикл forсортируется в числовом виде по полю #1 -более короткие средние значения времени отклика будут плавать вверх
  • первое поле обрезается, оставляя только IP-адреса
  • этот список IP-адресов затем назначается массиву $nearest

Это результирующий список IP-адресов с наименьшей задержкой вверху.

(Последняя строка printfпросто записывает новый /etc/yp.confс префиксом «ypserver» для каждого IP-адреса для конфигурации NIS.)

Я подумал о добавлении минимальной задержки к коэффициенту отклонения(mdevв pingвыводе ), чтобы выявить потенциально ненадежные хосты. Однако эта статистика была бы полезна только в том случае, если pingна хост длилось несколько часов или даже дней; а какой фактор будет? Кажется, что где-то между 10 и 100 было бы правильно, но это должно быть настроено для устойчивости к ненадежности. И кажется, что это очень много работы по очистке результатов, может быть, на 5%.

0
28.01.2020, 03:13

Теги

Похожие вопросы