В системах Linux я могу
watch -n1 tail /var/log/whatever.log
или
watch -n1 grep somestuff /var/log/whatever.log
Показывать обновления журнала каждые 1 секунду. Однако во FreeBSD смотреть команда делает что-то совсем другое. Кто знает хорошую команду FreeBSD для того, что я пытаюсь сделать? знак равно
Как насчет этого: $ tail -f logfile
?
И если вам нужно grep: $ tail -f logfile | grep foobar
.
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
(Установить из портов для BSD)
Если я определю ваше «что я пытаюсь сделать» как «следить за изменениями в файле журнала», я бы предложил вместо использования watch
что вы можете просто использовать параметр "-f" (для "следовать") или "-F" в tail
команда, как в tail -f /var/log/whatever.log
. Вывод также можно передать через grep, чтобы получить отфильтрованную версию, которую вы там показываете. Я считаю, что это также может быть более эффективным, чем «смотреть».
Редактировать: Я думал, что опция «следовать» недоступна в BSD, но похоже, что это так. Должно быть, думал о чем-то еще, чего нет ...
Вы можете написать быстрый цикл оболочки:
while sleep 1; do clear; grep somestuff /var/log/whatever.log | head -n 18; done
Вы можете использовать этот сценарий для всего, что хотите делать с помощью команды watch.
#!/usr/local/bin/bash
while [ true ]
do
clear
date
echo ------------------------------------
eval "$@"
sleep 2
done
Использование: sh имя_сценария.sh пример: sh имя_сценария.sh ls -l