位置:海鸟网 > IT > linux/Unix >

Linux日志管理五大命令详解(2)

  1.who命令

  who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。例如:运行who命令显示如下所示:

  # who

  root pts/1 2010-02-22 13:02 (:0.0)

  root pts/2 2010-02-22 15:57 (:0.0)

  root pts/3 2010-02-22 15:57 (:0.0)

  如果指明了wtmp文件名,则who命令查询所有以前的记录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。例如:运行该命令如下所示:

  # who /var/log/wtmp

  root :0 2010-01-24 21:47

  root pts/1 2010-01-24 21:47 (:0.0)

  root :0 2010-02-20 19:36

  root pts/1 2010-02-20 19:36 (:0.0)

  root :0 2010-02-21 15:21

  root pts/1 2010-02-21 15:56 (:0.0)

  root pts/2 2010-02-21 16:03 (:0.0)

  root :0 2010-02-22 13:01

  root pts/1 2010-02-22 13:02 (:0.0)

  root pts/2 2010-02-22 15:57 (:0.0)

  root pts/3 2010-02-22 15:57 (:0.0)

  2.users命令

  users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。运行该命令将如下所示:

  # users

  root root root

  3.last命令

  last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核,从而发现起中存在的问题,确定不法用户,并进行处理。运行该命令,如下所示:

  # last

  root pts/3 :0.0 Mon Feb 22 15:57 still logged in

  root pts/2 :0.0 Mon Feb 22 15:57 still logged in

  root pts/1 :0.0 Mon Feb 22 13:02 still logged in

  root :0 Mon Feb 22 13:01 still logged in

  reboot system boot 2.6.18-8.el5 Mon Feb 22 12:56 (03:02)

  root pts/2 :0.0 Sun Feb 21 16:03 - down (02:37)

  root pts/1 :0.0 Sun Feb 21 15:56 - down (02:45)

  root :0 Sun Feb 21 15:21 - down (03:20)

  reboot system boot 2.6.18-8.el5 Sun Feb 21 15:19 (03:22)

  root pts/1 :0.0 Sat Feb 20 19:36 - down (01:50)

  root :0 Sat Feb 20 19:36 - down (01:51)

  reboot system boot 2.6.18-8.el5 Sat Feb 20 19:34 (01:53)

  root pts/1 :0.0 Sun Jan 24 21:47 - down (00:02)

  root :0 Sun Jan 24 21:47 - down (00:02)

  reboot system boot 2.6.18-8.el5 Sun Jan 24 21:45 (00:05)

  reboot system boot 2.6.18-8.el5 Sun Jan 24 21:41 (00:02)

  wtmp begins Sun Jan 24 21:41:03 2010

  读者可以看到,使用上述命令显示的信息太多,区分度很小。所以,可以通过指明用户来显示其登录信息即可。例如:使用last reoot来显示reboot的历史登录信息,则如下所示:

  # last reboot

  reboot system boot 2.6.18-8.el5 Mon Feb 22 12:56 (03:07)

  reboot system boot 2.6.18-8.el5 Sun Feb 21 15:19 (03:22)

  reboot system boot 2.6.18-8.el5 Sat Feb 20 19:34 (01:53)

  reboot system boot 2.6.18-8.el5 Sun Jan 24 21:45 (00:05)

  reboot system boot 2.6.18-8.el5 Sun Jan 24 21:41 (00:02)

  wtmp begins Sun Jan 24 21:41:03 2010

  4.ac命令

  ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。例如:ac(回车)显示:total 18.47,如下所示:

  # ac

  total 18.47

  另外,可加一些参数,例如,last -u 102将报告UID为102的用户;last -t 7表示限制上一周的报告。

  5.lastlog命令

  lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var /log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示**Never logged**。注意需要以root身份运行该命令。运行该命令如下所示:

  # lastlog

  用户名 端口 来自 最后登陆时间

  root **从未登录过**

  bin **从未登录过**

  daemon **从未登录过**

  adm **从未登录过**

  lp **从未登录过**

  sync **从未登录过**

  shutdown **从未登录过**

  halt **从未登录过**

  mail **从未登录过**

  news **从未登录过**

  uucp **从未登录过**

  operator **从未登录过**

  games **从未登录过**

  gopher **从未登录过**

  ftp **从未登录过**

  nobody **从未登录过**

  rpm **从未登录过**

  dbus **从未登录过**

  avahi **从未登录过**

  mailnull **从未登录过**

  smmsp **从未登录过**

  nscd **从未登录过**

  vcsa **从未登录过**

  haldaemon **从未登录过**

  rpc **从未登录过**

  rpcuser **从未登录过**

  sshd **从未登录过**

  pcap **从未登录过**

  ntp **从未登录过**

  gdm **从未登录过**

  apache **从未登录过**

  distcache **从未登录过**

  postgres **从未登录过**

  mysql **从未登录过**

  dovecot **从未登录过**

  webalizer **从未登录过**

  squid **从未登录过**

  named **从未登录过**

  xfs **从未登录过**

  sabayon **从未登录过**

  postfix **从未登录过**

  amanda **从未登录过**

  cyrus **从未登录过**

  mailman **从未登录过**

  radiusd **从未登录过**

  exim **从未登录过**

  privoxy **从未登录过**

  quagga **从未登录过**

  radvd **从未登录过**

  ldap **从未登录过**

  tomcat **从未登录过**

  pegasus **从未登录过**

  liyang **从未登录过**

  google **从未登录过**

  到此,有关Linux系统全方位管理的四大方面就介绍完毕。