Uma questão de shell com o ssh

2

Eu acho que um comando shell pode enviar grandes dados para o host de destino:

dd if=/dev/zero bs=4096 count=1048576 | ssh user@ip 'cat > /dev/null'

Acho que posso usar isso para testar a largura de banda da rede, mas não é possível exibir o status do processo.

    
por larry 17.01.2011 / 07:42

5 respostas

9

Bem, se você embrulhar tudo isso em time :

time sh -c "dd if=/dev/zero bs=4096 count=1048576 | ssh user@ip 'cat > /dev/null'"

que lhe dará o tempo necessário para a transferência ser concluída. Divida os bytes transferidos pelo tempo e essa é a sua taxa de transferência.

Para um medidor de progresso, você pode usar pv , que elimina a necessidade de usar o tempo (1):

dd if=/dev/zero bs=1024 count=10000 | pv --size 10240000 | ssh user@ip 'cat > /dev/null'

que lhe dará um bom medidor de progresso, especialmente se você carregar o argumento --size com o tamanho total da transferência.

    
por 17.01.2011 / 07:58
3

Se o que você deseja fazer é testar a largura de banda da rede, há maneiras mais diretas de fazer isso.

Experimente ttcp ou sua substituição: nuttcp

[tla ~]$ nuttcp -S

michael@challenger:~$ nuttcp -4 -r tla
   41.5574 MB /  10.46 sec =   33.3336 Mbps 2 %TX 4 %RX
michael@challenger:~$ nuttcp -4 -t tla
   15.4347 MB /  10.13 sec =   12.7821 Mbps 1 %TX 2 %RX 0 retrans 3.30 msRTT
    
por 17.01.2011 / 08:33
2

O envio de SIGUSR1 para dd fará com que ele exiba seu progresso. Você pode calcular a diferença entre invocações subseqüentes para obter uma taxa aproximada.

    
por 17.01.2011 / 07:55
1

você pode usar iperf se realmente quiser testar a conectividade com grandes detalhes.

Caso contrário,

Crie um arquivo de teste de 100MB

dd if=/dev/urandom of=./test.bin bs=1024000 count=100

scp esse arquivo para testar o desempenho do upload

scp test.bin x.x.x.x:.

ou scp do outro lado para testar seu desempenho de download

    
por 17.01.2011 / 13:17
0

Normalmente é melhor usar o iperf para testar a largura de banda, porque ele não tem nenhuma sobrecarga de criptografia, mas você pode inserir pv entre dd e ssh para ver a velocidade de transferência em tempo real:

dd if=/dev/random | pv | ssh somehost 'cat > /dev/null'

Além disso, no FreeBSD você pode enviar SIGINFO para dd pressionando Ctrl + T, depois disso algumas estatísticas (incluindo velocidade) serão exibidas

    
por 17.01.2011 / 13:33

Tags