Você pode forçar o comando SSH “watch” a anexar a saída em vez de sobrescrever?

0

Estou tentando observar as estatísticas da minha rede via massa e quero gravar as estatísticas em um arquivo de log a cada segundo. Eu configurei putty para registrar a sessão ssh em um arquivo de log. No entanto, estou com dificuldades para emitir um comando putty que repete 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 sobrescreveria 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 linhas repetidamente?

    
por Izzo 05.11.2018 / 17:17

2 respostas

2

O utilitário watch usa curses para inicializar e atualizar a tela , então acho que você está nadando contra o rio tentando fazer um acréscimo ao invés de sobrescrevê-lo. Eu sugeriria, em vez disso, um loop de shell infinito:

while :
do
  ss -s     ## for example
  sleep 60  ## for example
done

Isso produziria as estatísticas desejadas no intervalo desejado, de um modo de rolagem / anexação, e também interruptível com o Control-C, como watch is.

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ê trabalha em torno de 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 05.11.2018 / 20:05
0

Por que não usar um script de shell simples para executar o comando várias vezes e gravar a saída em um arquivo. Algo parecido com isto:

#!/usr/bin/env bash
while true;
do
 free >> file.txt
 sleep 2
done

free é um comando que gera a RAM livre no sistema linux. Mude isso com o seu comando para executar. >> anexará a saída a file.txt . Você pode alterar a opção sleep para n número de segundos conforme sua necessidade.

NOTA: Este script será executado indefinidamente e você precisará pará-lo (CTRL + C) assim que tiver logs suficientes. Espero que isso ajude.

    
por 05.11.2018 / 20:05

Tags