gnuwatch
é uma ferramenta muito útil para inspecionar a saída de um programa: ela 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 por linha com um carimbo de data/hora. Para isso, uso scripts bash como:
while true;
do echo -n "`date` ";
ssh ubuntu@server -o ConnectTimeout=1 "uptime" ;
sleep 1;
done
Tem algumawatch
-ferramenta semelhante a que pode executar um comando e exibir sua saída com um carimbo de data/hora em uma linha sem apagar a saída anterior?
Responder1
Eu diria que você encontrou isso em loops simples, mas você pode fazer várias coisas a partir daqui:
Escreva uma função para lidar com isso para você
function uberwatch {
# call: uberwatch <interval> <command>
while true; do
"${@:2}";
sleep $1;
done
}
Você poderia alojar isso em algum lugar próximo ao seu ~/.bashrc
.
Registre a saída em um arquivo, mas continue visualizando comwatch
watch "command | tee -a watchlog.log"
Você ainda veria apenas a execução mais recente, mas poderia pesquisar um registro histórico, se necessário.
Responder2
enquanto verdadeiro; fazer data >> /vat/tmp/watch.log; durma 600; ls -l nome do arquivo >> /var/tmp/watch.log; feito
Gosto do loop while mencionado por Artem acima, mas estava procurando armazenar os dados em um arquivo para poder analisá-los quando voltar, portanto, adicionei redirecionamentos para um arquivo. No meu caso, observando o arquivo a cada 10 minutos e ls -l para tamanho do arquivo
-Jay
Responder3
Eu gosto do Oliwatch
solução modificada, mas gosto da ideia de visualizar o log em tempo real, em vez de vasculhá-lo mais tarde.
Aqui está uma ideia:
watch 'echo $(date && command 2>&1 | tail -n 1) >> watchlog.log && cat watchlog.log | tail'
Explicação:
echo
evita uma nova linha entredate
ecommand
.>>
anexa ao arquivo, da mesma forma,| tee -a
mas sem duplicar nawatch
saída.2>&1
combina stderr com stdout para garantir que você veja tudo, incluindo erros.| tail -n 1
restringe a saída à linha final (aquela que contém adate
saída) para uma visualização mais limpa em tempo real. Este pode ou não ser o seu desejo para o conteúdo do arquivo de log.