я использую Mosh + Экран GNU для большей части моей удаленной работы. Я также переезжаю на место в течение недели (с разными IP-адресами), и эта настройка позволяет всем работать как шарм. У меня есть одно желание.
Я хотел бы, чтобы скорость пинга от сервера к клиенту была значением в строке состояния экрана.
Для этого я написал простой скрипт, который делает это:
`ping -q -c 1 `who am i | egrep -o "\([^\)]+\)" | egrep -o "[0-9-]+{4}" | sed "s/\-/\./g"` | grep 'rtt min' | cut -d / -f 5 | cut -f 1 -d .
Проблема в том, что когда я перехожу в другое место, мош снова подключается, но who am i
команда больше не возвращает мой настоящий IP.
Мой вопрос:
Есть ли надежная команда, которая вернет IP-адрес клиента, подключенного в настоящее время с помощью mosh / ssh?
Обновить:
Кажется, это работает:
ping -q -c 1 `last | grep $USER | grep "still logged in" | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -n 1` | grep 'rtt min' | cut -d / -f 5 | cut -f 1 -d .
Придется тестировать с большим количеством мест.
Я нашел, что это работает:
ping -q -c 1 `last | grep $USER | grep "still logged in" | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -n 1` | grep 'rtt min' | cut -d / -f 5 | cut -f 1 -d .
Последняя команда показывает ваш «текущий» удаленный IP.