5.15 查看一个或多个文件中不断更新的最后几行

tail –f

tail -f --pid=PID# terminates after PID dies.

日志文件的最大特点就是,它会随着系统中各种事情的发生而不断更新。tail命令可以显示文件的一个快照(snapshot),然后直接返回到命令行。想要再次查看日志文件?不断地运行tail命令,一次,又一次。真麻烦!

使用-f(或--follow)选项,tail命令就不会自动关闭了。每当文件发生变化时,它就会显示文件的最后10行(或在选项中增加-n,指定不同的数字)的内容。用这种方法就可以观察到日志文件随时发生的所有变化。如果你正想弄明白系统或者程序刚刚发生了什么情况,这个命令就非常有用。

例如,Web服务器的日志文件可能如下所示:

说明 为了节省篇幅,删除了访问的IP地址、日期和时间。

  1. $ tail -f /var/log/httpd/d20srd_org_log_20051201
  2. GET /srd/skills/bluff.htm HTTP/1.1”...
  3. GET /srd/skills/senseMotive.htm HTTP/1.1”...
  4. GET /srd/skills/concentration.htm HTTP/1.1”...
  5. GET /srd/classes/monk.htm HTTP/1.1”...
  6. GET /srd/skills/escapeArtist.htm HTTP/1.1”...

很难在书中展示这个命令运行时的动态效果,这个文件也不会关闭。tail命令会一直打开它,以确保任何新的变化都能及时显示出来。文件显示的内容不断向上滚动,直到按Ctrl+c键才会停下来,并返回到命令行。

用一个日志文件来试试,例如/var/log/syslog。增加n选项,看看是否开始只显示特定行数的内容。然后用两个文件来试试这个命令,例如/var/log/syslog/var/log/daemon.log,看看会发生什么事情(提示:将会与5.9节中的情形非常相似,但是这里它会不断地更新)。