Rodando remotamente, se você matar o processo ssh
, a outra extremidade deve morrer. A menos que você esteja deixando esse fim suspender por algum motivo. Se for esse o caso, você pode querer executá-lo como parte de um script maior em segundo plano.
Você também não deve usar root remotamente, e você certamente não precisará do root ao lado do ssh. Evite trabalhar como root quanto possível. Use um usuário remoto com recursos sudo
.
Você provavelmente também não precisa de "w -", pois tcpdump
, por padrão, grava no stdout.
Você também pode limitar tcpdump
no número de pacotes capturados para controlar melhor a sessão. Por favor, note que você tem que excluir a porta 22 do sistema fazendo ssh
, caso contrário o sistema remoto irá capturar a sessão atual de uma forma recursiva de auto-alimentação.
Então você pode capturar 1000 pacotes que você pode fazer:
$ssh [email protected] "sudo tcpdump -i eth0 -s0 -c 1000 not port 22" > /tmp/local_file
Outra alternativa menos limpa é executar depois um pkill:
$ssh ..."sudo tcpdump"
$ssh ..."pkill tcpdump"
Como último aviso, /tmp
ou a raiz onde reside, geralmente está em sistemas de arquivos limitados ou na RAM; Também é um risco de segurança criar nomes previsíveis em um diretório / tmp, especificamente como um usuário privilegiado. Você pode querer usar outro local para o arquivo de captura.
Você também pode obter melhores resultados como um administrador de sistema que investe em uma ferramenta como ansible
. Para automatizar ou usar ferramentas mais complexas para administração remota, consulte Linux equivalente ao remoting "one-to-many" do PowerShell