Que tal isso: $ tail -f logfile
?
E se você precisar do grep: $ tail -f logfile | grep foobar
.
Nos sistemas Linux eu posso
watch -n1 tail /var/log/whatever.log
ou
watch -n1 grep somestuff /var/log/whatever.log
Para mostrar atualizações em um log a cada 1 segundo. No FreeBSD, no entanto, o comando watch faz algo totalmente diferente. Quem sabe um bom comando do FreeBSD para o que estou tentando fazer? =)
Port: gnu-watch-3.2.8
Path: /usr/ports/misc/gnu-watch
Info: GNU watch command
Maint: ehaupt[ woof-woof ]FreeBSD.org
B-deps:
R-deps:
WWW: http://procps.sourceforge.net/
watch -n 5 tail /var/logfile
cmdwatch -n 5 /var/logfile
gnuwatch -n 5 /var/logfile
(Instalar das Portas para os BSDs)
Você pode escrever um loop rápido de shell:
while sleep 1; do clear; grep somestuff /var/log/whatever.log | head -n 18; done
Se eu definir o seu "o que estou tentando fazer" como "assistir a alterações em um arquivo de log", sugiro que, em vez de usar watch
, você possa usar apenas o "-f" (para "seguir" ) ou "-F" no comando tail
, como em tail -f /var/log/whatever.log
. A saída também pode ser enviada pelo grep para fornecer a versão filtrada que você mostra lá. Acredito que isso também seja mais eficiente do que "assistir".
Edit: Eu achei que a opção "follow" não estava disponível no BSD, mas parece que sim. Deve ter pensado em outra coisa que não está lá ...
Você pode usar esse script para todas as coisas que deseja fazer com o comando watch.
#!/usr/local/bin/bash
while [ true ]
do
clear
date
echo ------------------------------------
eval "$@"
sleep 2
done
Uso: sh scriptname.sh exemplo: sh scriptname.sh ls -l