Salta um arquivo de ssh e espelho para um arquivo local

3

Para completar um arquivo por ssh, posso usar

ssh  -t remotebox "tail -f /var/log/remote.log"

No entanto, é possível sincronizar a cauda com um arquivo local? Então um arquivo espelha automaticamente a atualização do comando tail?

    
por Howard 29.06.2014 / 06:35

3 respostas

9

Sim, você pode usar tee para isso:

ssh  -t remotebox "tail -f /var/log/remote.log" | tee -a /var/log/local.log

Dessa forma, a saída será impressa no stdout e copiada para /var/log/local.log no sistema em que você está executando o comando ssh.

    
por 29.06.2014 / 07:58
1

Apenas redirecione a stdout.

ssh -t remotebox tail -f /var/log/remote.log > local.log

Para anexar ao local.log:

ssh -t remotebox tail -f /var/log/remote.log >> local.log

Isto irá gravar no servidor local.

O servidor remoto só seria gravado se você incluir o redirecionamento entre aspas:

ssh -t removebox "tail -f /var/log/remote.log >> remote.log"

    
por 29.06.2014 / 23:16
0

Apenas sugira outra maneira útil de usar o logtail. Instale o pacote logtail no host remoto e execute-o para obter apenas novas linhas que não foram lidas da última vez:

ssh remotebox logtail -f /var/log/remote.log >> local.log

Você pode executar o comando acima sempre que quiser "sincronizar" o log, ou pode adicioná-lo ao crontab, para que ele possa ser executado automaticamente. Desta forma é especialmente userful quando você não tem uma conexão estável, então você não pode manter a conexão ssh dia a dia.

Espero que isso ajude.

    
por 30.06.2014 / 13:41