当前位置:首页 > 电脑 > 操作系统 > Linux 内容正文

Linux中常见的日志文件和命令

作者: 发布时间:2007-08-16 来源:中国Linux论坛【
TWa鹰城网
  w命令 TWa鹰城网

  w命令查询utmp文件并显示当前系统中每个用户和它所运行的进程信息。例如,键入w命令,然后按回车键,将显示如下内容:TWa鹰城网

3:36pm up 1 day, 22:34, 6 users, load average: 0.23, 0.29, 0.27 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT chyang pts/0 202.38.68.242 3:06pm 2:04 0.08s 0.04s -bash ynguo pts/2 202.38.79.47 3:32pm 0.00s 0.14s 0.05 w lewis pts/3 202.38.64.233 1:55pm 30:39 0.27s 0.22s -bash lewis pts/4 202.38.64.233 1:35pm 6.00s 4.03s 0.01s sh /home/users/ ynguo pts/7 simba.nic.ustc.e 2:12pm 0.00s 0.47s 0.24s telnet mail ylou pts/8 202.38.64.235 2:15pm 1:09m 0.10s 0.04s -bash TWa鹰城网
 TWa鹰城网

  users命令 TWa鹰城网

  users命令用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。例如,键入users命令,然后按回车键,将显示如下内容: TWa鹰城网

  chyang lewis lewis ylou ynguo ynguo TWa鹰城网

  last命令 TWa鹰城网

  last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。例如: TWa鹰城网

chyang pts/9 202.38.68.242 Tue Aug 1 08:34 - 11:23 (02:49) cfan pts/6 202.38.64.224 Tue Aug 1 08:33 - 08:48 (00:14) chyang pts/4 202.38.68.242 Tue Aug 1 08:32 - 12:13 (03:40) lewis pts/3 202.38.64.233 Tue Aug 1 08:06 - 11:09 (03:03) lewis pts/2 202.38.64.233 Tue Aug 1 07:56 - 11:09 (03:12) TWa鹰城网
 TWa鹰城网

  如果指明了用户,那么last只报告该用户的近期活动,例如,键入last ynguo命令,然后按回车键,将显示如下内容: TWa鹰城网

ynguo pts/4 simba.nic.ustc.e Fri Aug 4 16:50 - 08:20 (15:30) ynguo pts/4 simba.nic.ustc.e Thu Aug 3 23:55 - 04:40 (04:44) ynguo pts/11 simba.nic.ustc.e Thu Aug 3 20:45 - 22:02 (01:16) ynguo pts/0 simba.nic.ustc.e Thu Aug 3 03:17 - 05:42 (02:25) ynguo pts/0 simba.nic.ustc.e Wed Aug 2 01:04 - 03:16 1+02:12) ynguo pts/0 simba.nic.ustc.e Wed Aug 2 00:43 - 00:54 (00:11) ynguo pts/9 simba.nic.ustc.e Thu Aug 1 20:30 - 21:26 (00:55) TWa鹰城网
 TWa鹰城网

  ac命令 TWa鹰城网

  ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连接的时间(小时),如果不使用标志,则报告总的时间。例如,键入ac命令,然后按回车键,将显示如下内容: TWa鹰城网

  total 5177.47 TWa鹰城网

键入ac -d命令,然后按回车键,将显示每天的总的连接时间: TWa鹰城网

Aug 12 total 261.87 Aug 13 total 351.39 Aug 14 total 396.09 Aug 15 total 462.63 Aug 16 total 270.45 Aug 17 total 104.29 Today total 179.02 TWa鹰城网
 TWa鹰城网

  键入ac -p命令,然后按回车键,将显示每个用户的总的连接时间: TWa鹰城网

ynguo 193.23 yucao 3.35 rong 133.40 hdai 10.52 zjzhu 52.87 zqzhou 13.14 liangliu 24.34 total 5178.24 TWa鹰城网
  lastlog命令 TWa鹰城网

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

rong 5 202.38.64.187 Fri Aug 18 15:57:01 +0800 2000 dbb **Never logged in** xinchen **Never logged in** pb9511 **Never logged in** xchen 0 202.38.64.190 Sun Aug 13 10:01:22 +0800 2000 TWa鹰城网
 TWa鹰城网

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

  进程统计 TWa鹰城网

  UNIX可以跟踪每个用户运行的每条命令,如果想知道昨晚弄乱了哪些重要的文件,进程统计子系统可以告诉你。它还对跟踪一个侵入者有帮助。与连接时间日志不同,进程统计子系统默认不激活,它必须启动。在Linux系统中启动进程统计使用accton命令,必须用root身份来运行。accton命令的形式为:accton file,file必须事先存在。先使用touch命令创建pacct文件:touch /var/log/pacct,然后运行accton:accton /var/log/pacct。一旦accton被激活,就可以使用lastcomm命令监测系统中任何时候执行的命令。若要关闭统计,可以使用不带任何参数的accton命令。 TWa鹰城网

  lastcomm命令报告以前执行的文件。不带参数时,lastcomm命令显示当前统计文件生命周期内记录的所有命令的有关信息。包括命令名、用户、tty、命令花费的CPU时间和一个时间戳。如果系统有许多用户,输入则可能很长。看下面的例子: TWa鹰城网

crond F root ?? 0.00 secs Sun Aug 20 00:16 promisc_check.s S root ?? 0.04 secs Sun Aug 20 00:16 promisc_check root ?? 0.01 secs Sun Aug 20 00:16 grep root ?? 0.02 secs Sun Aug 20 00:16 tail root ?? 0.01 secs Sun Aug 20 00:16 sh root ?? 0.01 secs Sun Aug 20 00:15 ping S root ?? 0.01 secs Sun Aug 20 00:15 ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15 sh root ?? 0.01 secs Sun Aug 20 00:15 ping S root ?? 0.02 secs Sun Aug 20 00:15 ping6.pl F root ?? 0.02 secs Sun Aug 20 00:15 sh root ?? 0.02 secs Sun Aug 20 00:15 ping S root ?? 0.00 secs Sun Aug 20 00:15 ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15 sh root ?? 0.01 secs Sun Aug 20 00:15 ping S root ?? 0.01 secs Sun Aug 20 00:15 sh root ?? 0.02 secs Sun Aug 20 00:15 ping S root ?? 1.34 secs Sun Aug 20 00:15 locate root ttyp0 1.34 secs Sun Aug 20 00:15 accton S root ttyp0 0.00 secs Sun Aug 20 00:15 TWa鹰城网
 TWa鹰城网

  进程统计的一个问题是pacct文件可能增长得十分迅速。这时需要交互式地或经过cron机制运行sa命令来保证日志数据在系统控制内。sa命令报告、清理并维护进程统计文件。它能把/var/log/pacct中的信息压缩到摘要文件/var/log/savacct和/var/log/usracct中。这些摘要包含按命令名和用户名分类的系统统计数据。在默认情况下sa先读它们,然后读pacct文件,使报告能包含所有的可用信息。sa的输出有下面一些标记项。TWa鹰城网

avio:每次执行的平均I/O操作次数。 TWa鹰城网

cp:用户和系统时间总和,以分钟计。 TWa鹰城网

cpu:和cp一样。 TWa鹰城网

k:内核使用的平均CPU时间,以1k为单位。 TWa鹰城网

k*sec:CPU存储完整性,以1k-core秒为单位。 TWa鹰城网

re:实时时间,以分钟计。 TWa鹰城网

s:系统时间,以分钟计。 TWa鹰城网

tio:I/O操作的总数。 TWa鹰城网

u:用户时间,以分钟计。 TWa鹰城网

  例如:TWa鹰城网

842 173.26re 4.30cp 0avio 358k 2 10.98re 4.06cp 0avio 299k find 9 24.80re 0.05cp 0avio 291k ***other 105 30.44re 0.03cp 0avio 302k ping 104 30.55re 0.03cp 0avio 394k sh 162 0.11re 0.03cp 0avio 413k security.sh* 154 0.03re 0.02cp 0avio 273k ls 56 31.61re 0.02cp 0avio 823k ping6.pl* 2 3.23re 0.02cp 0avio 822k ping6.pl 35 0.02re 0.01cp 0avio 257k md5sum 97 0.02re 0.01cp 0avio 263k initlog 12 0.19re 0.01cp 0avio 399k promisc_check.s 15 0.09re 0.00cp 0avio 288k grep 11 0.08re 0.00cp 0avio 332k awk TWa鹰城网
 TWa鹰城网

  用户还可以根据用户而不是命令来提供一个摘要报告。例如,键入命令"sa -m",将显示如下内容: TWa鹰城网

885 173.28re 4.31cp 0avk root 879 173.23re 4.31cp 0avk alias 3 0.05re 0.00cp 0avk qmailp 3 0.01re 0.00cp 0avkTWa鹰城网
  syslog设备 TWa鹰城网

  syslog已被许多日志函数采纳,它用在许多保护措施中。任何程序都可以通过syslog 记录事件。syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。 TWa鹰城网

  syslog设备依据两个重要的文件:/etc/syslogd(守护进程)和/etc/syslog.conf配置文件。习惯上,多数syslog信息被写到/var/adm或/var/log目录下的信息文件中(messages.*)。一个典型的syslog记录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围(但不在日志中出现)。 TWa鹰城网

  每个syslog消息被赋予下面的主要设备之一: TWa鹰城网

LOG_AUTH:认证系统login、su、getty等。LOG_AUTHPRIV:同LOG_AUTH,但只登录到所选择的单个用户可读的文件中。LOG_CRON:cron守护进程。LOG_DAEMON:其他系统守护进程,如routed。LOG_FTP:文件传输协议ftpd、tftpd。LOG_KERN:内核产生的消息。LOG_LPR:系统打印机缓冲池lpr、lpd。LOG_MAIL:电子邮件系统。LOG_NEWS:网络新闻系统。LOG_SYSLOG:由syslogd(8)产生的内部消息。LOG_USER:随机用户进程产生的消息。LOG_UUCP:UUCP子系统。LOG_LOCAL0~LOG_LOCAL7:为本地使用保留。syslog为每个事件赋予几个不同的优先级:LOG_EMERG:紧急情况。LOG_ALERT:应该被立即改正的问题,如系统数据库被破坏。LOG_CRIT:重要情况,如硬盘错误。LOG_ERR:错误。LOG_WARNING:警告信息。LOG_NOTICE:不是错误情况,但是可能需要处理。LOG_INFO:情报信息。LOG_DEBUG:包含情报的信息,通常只在调试一个程序时使用。TWa鹰城网
 TWa鹰城网

  syslog.conf文件指明syslogd程序记录日志的行为,该程序在启动时查询配置文件。该文件由不同程序或消息分类的单个条目组成,每个占一行。对每类消息提供一个选择域和一个动作域。这些域由tab符隔开:选择域指明消息的类型和优先级;动作域指明syslogd接收到一个与选择标准相匹配的消息时所执行的动作。每个选项是由设备和优先级组成的。当指明一个优先级时,syslogd将记录一个拥有相同或更高优先级的消息。所以如果指明"crit",那所有标为crit、alert和emerg的消息将被记录。每行的行动域指明当选择域选择了一个给定消息后应该把它发送到哪儿。例如,如果想把所有邮件消息记录到一个文件中,如下所示: TWa鹰城网

#Log all the mail messages in one place mail.* /var/log/maillog TWa鹰城网
 TWa鹰城网

  其他设备也有自己的日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志(/var/log/spooler)中并把级别限为"err"或更高。例如: TWa鹰城网

# Save mail and news errors of level err and higher in aspecial file. uucp,news.crit /var/log/spooler TWa鹰城网
 TWa鹰城网

  当一个紧急消息到来时,可能想让所有的用户都得到,也可能想让自己的日志接收并保存:TWa鹰城网

#Everybody gets emergency messages, plus log them on anther machine *.emerg * *.emerg @linuxaid.com.cn   TWa鹰城网
 TWa鹰城网

  alert消息应该写到root和tiger的个人账号中: TWa鹰城网

#Root and Tiger get alert and higher messages *.alert root,tigerTWa鹰城网
 TWa鹰城网

  有时syslogd将产生大量的消息。例如,内核("kernel"设备)可能很冗长。用户可能想把内核消息记录到/dev/console中。下面的例子表明内核日志记录被注释掉了: TWa鹰城网

#Log all kernel messages to the console #Logging much else clutters up the screen #kern.* /dev/console TWa鹰城网