如何查看FreeBSD的系统日志

由于FreeBSD是一个多用户系统 , 那么就需要管理员进行日常维护 , 特别是用做网络

服务器的系统 , 一旦因为缺乏维护而造成停机故障 , 就会造成很大损失 。即使对于单用

户的FreeBSD系统 , 同样也要执行这些不可缺乏的维护任务 , 只是由于系统归个人使用 ,

那么对维护的要求就不必那么高 , 维护任务就轻松一些 。



系统日志

系统的日志记录提供了对系统活动的详细审计 , 这些日志用于评估、审查系统的运

行环境和各种操作 。对于一般情况 , 日志记录包括记录用户登录时间、登录地点、进行

什么操作等内容 , 如果使用得当 , 日志记录能向系统管理员提供有关危害安全的侵害或

入侵试图等非常有用的信息 。

BSD提供了详细的各种日志记录 , 以及有关日志的大量工具和实用程序 。这些审计记

录通常由程序自动产生 , 是缺省设置的一部分 , 能够帮助Unix管理员来寻找系统中存在

的问题 , 对系统维护十分有用 。还有另一些日志记录 , 需要管理员进行设置才能生效 。

大部分日志记录文件被保存在/var/log目录中 , 在这个目录中除了保存系统生成日志之

外 , 还包括一些应用软件的日志文件 。当然/var目录下的其他子目录中也会记录下一些

其他种类的日志记录文件 , 这依赖于具体的应用程序的设置 。



$ ls /var/log

adduser maillog.5.gz sendmail.st.1

dmesg.today maillog.6.gz sendmail.st.10

dmesg.yesterday maillog.7.gz sendmail.st.2

httpd-access.log messages sendmail.st.3

httpd-error.log messages.0.gz sendmail.st.4

kerberos.log messages.1.gz sendmail.st.5

lastlog messages.2.gz sendmail.st.6

lpd-errs messages.3.gz sendmail.st.7

maillog messages.4.gz sendmail.st.8

maillog.0.gz messages.5.gz sendmail.st.9

maillog.1.gz news setuid.today

maillog.2.gz ppp.log setuid.yesterday

maillog.3.gz sendmail.st userlog

maillog.4.gz sendmail.st.0 wtmp





系统登录日志



系统会保存每个用户的登录记录 , 这些信息包括这个用户的名字、登录起始结束时

间以及从何处登录入系统的等等 。它们被保存到/var/log/lastlog、/var/log/wtmp和/

var/run/utmp文件中 , 这三个文件以二进制格式保存了这些用户的登录数据 。

其中/var/run/utmp文件中保存的是当前系统用户的登录记录 , 因此这个文件会随着

用户进入和离开系统而不断变化 , 而它也不会为用户保留很长的记录 , 只保留当时联机

的用户记录 。系统中需要查询当前用户状态的程序 , 如 who、w等就需要访问这个文件 。

utmp可能不包括所有精确的信息 , 某些突发错误会终止用户登录会话 , 当没有及时更新

utmp记录 , 因此utmp的记录不是百分之百的可以信赖的 。

而/var/log/wtmp保存了所有的登录、退出信息 , 以及系统的启动、停机记录 , 因此

随着系统正常运行时间的增加 , 它的大小也会越来越大 , 增加的速度依赖于系统用户登

录次数 。因此可以利用这个日志用来查看用户的登录记录 , last命令就通过访问这个文

件来获得这些信息 , 并以反序从后向前显示用户的登录记录 , last也能根据用户、终端

tty或时间显示相应的记录 。ac命令同样也使用wtmp中的数据产生报告 , 但它的显示方

式不同 。它可以根据用户(ac -p) , 或按日期(ap -d)显示信息 , 这样管理员就能获

得一些非常有用的反常信息 , 如一个平时不太活跃的用户突然登录并连接很长时间 , 就

推荐阅读