“观看”FreeBSD vs Linux的日志

在Linux系统上,我可以

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

要么

 watch -n1 grep somestuff /var/log/whatever.log 

每1秒显示一次日志的更新。 但是,在FreeBSD上, watch命令完全可以完成其他任务。 谁知道一个好的FreeBSD命令,我正在做什么? =)

这个怎么样: $ tail -f logfile

如果你需要grep: $ tail -f logfile | grep foobar $ 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/ 

你可以写一个快速的shell循环:

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

如果我将“我正在做的事情”定义为“监视对日志文件的更改”,我build议不要使用watch ,而是使用“-f”(用于“跟随”)或“-F “ tail选项,如tail -f /var/log/whatever.log 。 输出也可以通过greppipe道给你在那里显示的过滤版本。 我相信这也可能比“观察”更有效率。

编辑:我认为“跟随”选项不是在BSD上可用,但它似乎是。 一定是在想别的东西不在那里…

  • Linux: watch -n 5 tail /var/logfile
  • Freebsd: cmdwatch -n 5 /var/logfile
  • gnuwatch -n 5 /var/logfilegnuwatch -n 5 /var/logfile

(从BSD的端口安装)

你可以使用这个脚本来处理你想要用watch命令做的所有事情。

 #!/usr/local/bin/bash while [ 1 -lt 2 ] do clear date echo ------------------------------------ eval $@ sleep 2 done 

用法:sh scriptname.sh例如:sh scriptname.sh ls -l