Descobri que isso funciona:
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 .
Último comando mostra seu ip remoto "atual".
Estou usando Mosh + Tela GNU para a maioria do meu trabalho remoto. Eu também estou mudando para o local durante a semana (com diferentes endereços IP) e esta configuração mantém tudo funcionando como um encanto. Há um desejo que tenho.
Eu gostaria de ter a velocidade do ping do servidor para o cliente como um valor na barra de status da tela.
Para isso eu escrevi um script simples que faz isso:
'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 .
O problema é que quando eu vou para um local diferente, mosh se reconecta, mas o comando who am i
não retorna mais meu IP real.
Minha pergunta:
Existe um comando robusto que retornará o endereço IP do cliente atualmente conectado usando mosh / ssh?
Atualização:
Isso parece funcionar:
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 .
É preciso testar com mais locais.
Descobri que isso funciona:
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 .
Último comando mostra seu ip remoto "atual".
Tags ssh gnu-screen