GNU assiste sem apagar as saídas anteriores

3

gnu watch é uma ferramenta muito útil para inspecionar uma saída do programa: Executa o programa e mostra a saída em tela cheia a cada 2 segundos.

Às vezes, não quero que a saída anterior seja apagada, mas sim impressa linha a linha com um registro de data e hora. Para isso, eu uso scripts bash como:

while true; 
    do echo -n "'date'   "; 
    ssh ubuntu@server -o ConnectTimeout=1 "uptime" ; 
    sleep 1; 
done

Existe uma ferramenta semelhante a watch que pode executar um comando e exibir sua saída com um timestamp em uma linha sem apagar a saída anterior?

    
por Adam Matan 22.07.2014 / 12:22

1 resposta

4

Eu diria que você encontrou em loops simples, mas você pode fazer várias coisas aqui:

Escreva uma função para lidar com isso para você

function uberwatch {
    # call: uberwatch <interval> <command>
    while true; do
        "${@:2}";
        sleep ;
    done
}

Você pode colocar isso em algum lugar perto do seu ~/.bashrc .

Registre a saída no arquivo, mas continue visualizando com watch

watch ... "command | tee -a watchlog.log"

Você ainda veria apenas o mais recente, mas pode pesquisar um log de histórico, se necessário.

    
por Oli 22.07.2014 / 13:11