Estou tentando assistir minhas estatísticas de rede via putty e quero gravar as estatísticas em um arquivo de log a cada segundo. Configurei o putty para registrar a sessão ssh em um arquivo de log. No entanto, estou lutando para emitir um comando putty que emite repetidamente o comando para extrair as estatísticas.
Minha primeira abordagem foi usar o comando "watch". Isso funcionou bem para executar o comando a cada segundo, no entanto, ele substituiria a saída do terminal toda vez que fosse atualizado e o arquivo de log não mostraria o histórico.
Minha pergunta: Como configuro o comando watch para anexar a saída da sessão em vez de apenas substituir repetidamente as linhas?
O utilitário watch usa curses para inicializar e atualizar a tela , então acho que você está nadando contra a corrente tentando fazê-lo anexar em vez de substituir. Eu sugeriria, em vez disso, um loop de shell infinito:
Isso produziria as estatísticas desejadas no intervalo desejado, de forma de rolagem/anexação, e também interrompível com Control-C, como
watch
é.Ele não fornece nenhum dos recursos do relógio, como destacar diferenças, fornecer um título de comando ou sair em várias condições. Você contorna alguns deles emitindo manualmente o comando de teste e/ou adicionando um teste no código de retorno do comando para
break
fora do loop.Por que não usar um script de shell simples para executar o comando repetidamente e gravar a saída em um arquivo. Algo assim:
free
é um comando que gera a RAM livre no sistema linux. Altere isso com seu comando para executar.>>
anexará a saída afile.txt
. Você pode alterar asleep
opção para on
número de segundos conforme sua necessidade.NOTA: Este script será executado indefinidamente e você precisará interrompê-lo (CTRL + C) assim que tiver logs suficientes.