Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

On Linux systems I can

watch -n1 tail /var/log/whatever.log


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? =)

share|improve this question
up vote 19 down vote accepted

How about this: $ tail -f logfile?

And if you need to grep: $ tail -f logfile | grep foobar.

share|improve this answer
On linux you generally have "tailf" which has the advantage of "not accessing the file when it is not growing". – Shadok Mar 4 '11 at 17:44
Port:   gnu-watch-3.2.8
Path:   /usr/ports/misc/gnu-watch
Info:   GNU watch command
Maint:  ehaupt[ woof-woof ]
share|improve this answer

You could write a quick shell loop:

while sleep 1; do clear; grep somestuff /var/log/whatever.log | head -n 18; done

share|improve this answer

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...

share|improve this answer
There are the same -f and -F options to tail on FreeBSD. – Dennis Williamson Apr 14 '10 at 21:38

You can use this script for all things that you want to do with watch command.

while [ 1 -lt 2 ]
echo ------------------------------------
eval $@
sleep 2

Usage:sh example:sh ls -l

share|improve this answer
You are missing " around $@ and eval is not needed. [ 1 -lt 2 ] could be replaced with true. Your script would be a lot more readable if you used some indentation. – kasperd Oct 14 '15 at 6:50
  • 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)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.