Получить ssid WiFi в зависимости от состояния WiFi

Просто наличие большего значения, чем пропускная способность интерфейса на стороне вывода, не означает, что интерфейс отправляет весь этот трафик; это означает, однако, что вы пытаетесь отправить весь этот трафик и перегружаете, по крайней мере, интерфейс.

Большая часть лишнего трафика будет отброшена. Посмотрите на значение превышения.

If the capacity of the interface is exceeded, the frame that is currently being received is dropped and the overrun counter is incremented.

PS То, что SCP делает это, мало соответствует поведению приложения, основанного на TCP, и уж тем более SCP, который известен своей медленностью. Это кажется гораздо более типичным для приложения на основе UDP/многоадресной передачи/торрента. Сильно подозреваю, что что-то упускают из виду.

0
14.07.2020, 00:05
1 ответ

Я, вероятно, проделал ужасную работу, объясняя, что я хочу, чтобы скрипт делал на самом деле, так что вот лучшая версия:

Я не хочу обновлять панель каждые 20/30 секунд только для того, чтобы каждый раз отображать один и тот же ssid, я хочу обновлять ее только в том случае, если сценарий выводит другой результат.

Я нашел решение совершенно случайно:

# This function checks if the line is actually different or not,
# it's stolen from herbstluftwm example script
uniq_linebuffered() {
  awk -W interactive '$0 != l { print ; l=$0 ; fflush(); }' "$@"
}

while :
do
    case "con=$(cat /sys/class/net/w*/operstate 2>/dev/null)" in
        [Dd]*) ssid='No Connection' ;;
        [Uu]*) ssid=$(iwgetid -r) ;;
    esac

    echo "$ssid"
    sleep 10 || break
done > >(uniq_linebuffered) &
0
18.03.2021, 23:19

Теги

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