Calcula a hora quando os comandos são recebidos no servidor

1

Estou tentando encontrar o tempo de atraso dos comandos enviados por SSH.

Quero dizer a diferença entre a hora em que o comando é enviado do cliente com o tempo que ele é recebido pelo servidor. Existe alguma maneira de calcular isso?

Qualquer sugestão é apreciada.

    
por revo 02.05.2014 / 09:19

1 resposta

2

A abordagem mais simples em que consigo pensar é

$ date; ssh user@server date
Fri May  2 13:45:28 EEST 2014
Fri May  2 13:45:30 EEST 2014

O primeiro date imprimirá a data / hora atual do seu sistema. O segundo se conectará ao seu servidor por ssh ( ssh user@server ) e executará o comando date no servidor. Supondo que o cliente e o servidor estejam sincronizados com o mesmo servidor NTP e tenham o mesmo tempo, isso permitirá que você veja a diferença de horário. Observe que isso não será 100% preciso, pois haverá um pequeno atraso causado pelo lançamento do comando ssh , mas estamos falando de milissegundos, então duvido que isso faça diferença.

Se você precisar de maior precisão, use algo assim que mostrará os nanossegundos:

$ date +%T:%N; ssh user@server date +%T:%N
13:47:21:739912080
13:47:23:774238647

Você também pode usar o sinalizador detalhado para ssh ( -v ), que informará a velocidade de transferência. Isso leva em conta apenas o tempo após a conexão ter sido estabelecida e não a sobrecarga necessária para se conectar em primeiro lugar:

$ ssh -v user@server exit 2>&1 | grep second
Transferred: sent 3272, received 1920 bytes, in 0.5 seconds
Bytes per second: sent 6556.2, received 3847.1

O comando acima se conecta ao servidor e simplesmente executa exit para encerrar a conexão novamente. 2>&1 redireciona o erro padrão para a saída padrão, o que nos permite grep para "segundo" e obter as estatísticas.

    
por terdon 02.05.2014 / 12:48