"watching" a log on FreeBSD vs Linux
Solution 1
How about this: $ tail -f logfile
?
And if you need to grep: $ tail -f logfile | grep foobar
.
Solution 2
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/
Solution 3
- Linux:
watch -n 5 tail /var/logfile
- Freebsd:
cmdwatch -n 5 /var/logfile
- Openbsd:
gnuwatch -n 5 /var/logfile
(Install from Ports for the BSDs)
Solution 4
You could write a quick shell loop:
while sleep 1; do clear; grep somestuff /var/log/whatever.log | head -n 18; done
Solution 5
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 the tail
command, as in tail -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...
Related videos on Youtube
Cory J
Updated on September 17, 2022Comments
-
Cory J almost 2 years
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? =)
-
Dennis Williamson about 14 years
-
Shadok over 13 yearsOn linux you generally have "tailf" which has the advantage of "not accessing the file when it is not growing".
-
kasperd over 8 yearsYou are missing
"
around$@
andeval
is not needed.[ 1 -lt 2 ]
could be replaced withtrue
. Your script would be a lot more readable if you used some indentation.