On Linux systems I can
watch -n1 tail /var/log/whatever.log
or
watch -n1 grep somestuff /var/log/whatever.log
To show updates to a log every 1 seconds. On FreeBSD however, the watch command does something else entirely. Who knows a good FreeBSD command for what I'm trying to do? =)
How about this:
$ tail -f logfile
?And if you need to grep:
$ tail -f logfile | grep foobar
.watch -n 5 tail /var/logfile
cmdwatch -n 5 /var/logfile
gnuwatch -n 5 /var/logfile
(Install from Ports for the BSDs)
You could write a quick shell loop:
while sleep 1; do clear; grep somestuff /var/log/whatever.log | head -n 18; done
If I define your "what I'm trying to do" as "watch changes to a log file", I would suggest rather than using
watch
that you could just use the "-f" (for "follow") or "-F" option on thetail
command, as intail -f /var/log/whatever.log
. The output can also be piped through grep to give you the filtered version you show there. I believe this is also likely to be more efficient than "watch".Edit: I thought the "follow" option wasn't available on BSD but it appears it is. Must have been thinking of something else that's not there...
You can use this script for all things that you want to do with watch command.
Usage:sh scriptname.sh example:sh scriptname.sh ls -l