linux常用日志文件
假若您在Linux环境中耗费大量时间linux日志文件系统,则必须晓得日志文件的位置以及每位日志文件中包含的内容。
当系统运行平稳时,请花一些时间来学习和理解各类日志文件的内容,这将在出现危机时为您提供帮助,而且您必须查看日志文件以找出问题所在。
/etc/rsyslog.conf控制个别日志文件中的内容。比如,以下是rsyslog.conf中/var/log/messages的条目。
$ grep "/var/log/messages" /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none
/var/log/messages
在前面的输出中,
以下是/var/log/目录下的20个不同的日志文件。其中一些日志文件是特定于分发的。诸如,您将在基于Debian的系统上(比如,在Ubuntu上)听到dpkg.log。
/var/log/messages–包含全局系统消息,包括系统启动期间记录的消息。在/var/log/messages中记录了几件事,包括mail,cron,daemon,kern,auth等。/var/log/dmesg–包含内核环型缓冲区信息。系统启动时,它将在屏幕上复印一些消息,以显示有关内核在引导过程中测量到的硬件设备的信息。那些消息在内核环型缓冲区中可用,但是每每新消息出现时,旧消息都会被覆盖。您也可以使用dmesg命令查看此文件的内容。/var/log/auth.log–包含系统授权信息,包括所使用的用户登入名和身分验证机制。/var/log/boot.log–包含系统启动时记录的信息/var/log/daemon.log–包含由系统上运行的各类后台守护程序记录的信息/var/log/dpkg.log–包含使用dpkg命令安装或删掉软件包时记录的信息/var/log/kern.log–包含内核记录的信息。帮助您解决订制内核的问题。/var/log/lastlog–显示所有用户的最新登陆信息。
这不是一个ascii文件。您应当使用lastlog命令查看此文件的内容。/var/log/maillog/var/log/mail.log–包含来自系统上运行的短信服务器的日志信息。诸如,sendmail将有关所有已发送项目的信息记录到此文件中/var/log/user.log–包含有关所有用户级别日志的信息/var/log/Xorg.x.log–记录来自X的消息/var/log/alternatives.log–更新取代方式的信息记录到此日志文件中。在Ubuntu上,update-alternatives维护确定默认命令的符号链接。/var/log/btmp(lastb命令;显示所有错误的登陆尝试)/var/log/wtmp(显示自创建文件以来所有已登入和退出的用户…上一个命令;尝试登陆)–此文件包含有关登陆失败的信息尝试。使用最后一个命令查看btmp文件。诸如,“last-f/var/log/btmp|更多”/var/log/cups–所有与复印机和复印相关的日志消息/var/log/anaconda.log–安装Linux时,所有与安装相关的消息都储存在此日志文件中/var/log/yum.log–包含使用yum安装软件包时记录的信息/var/log/cron–每当cron守护程序(或anacron)启动cron作业时linux日志文件系统,它将在该文件中记录有关cron作业的信息/var/log/secure–包含与身分验证和授权特权有关的信息。
比如ubuntu linux,sshd将所有消息记录在此处,包括登陆失败。/var/log/wtmp或/var/log/utmp–包含登陆记录。使用wtmp可以找出谁登陆了系统。who命令使用此文件显示信息。/var/log/faillog-包含用户失败的登陆尝试次数。使用faillog命令显示此文件的内容。
不仅上述日志文件以外,/var/log目录还可能包含以下子目录,具体取决于系统上运行的应用程序。
查看大量日志文件以解决问题是系统管理员和程序员的日常工作。在本文中,让我们回顾怎样使用10个很棒的示例来有效地查看和操作小型日志文件。
示例1:使用sed命令显示文件的特定行(基于行号)
仅查看行号提到的特定行。
Syntax: $ sed -n -e Xp -e Yp FILENAME
下边提及的示例将从syslog复印行120、145、1050。
$ sed -n -e 120p -e 145p -e 1050p /var/log/syslog
在以下示例中,您可以从行号101到110查看var/log/cron的内容。
Syntax: sed -n M,Np FILENAME
$ sed -n 101,110p /var/log/cron
示例2:使用head命令显示文件的前N行
本示例仅显示/var/log/maillog文件的前15行。将15修改为10以显示日志文件的前10行。
句型:head-nNFILENAME
$ head -n 15 /var/log/maillog
示例3:使用head命令忽视文件的最后N行
本示例说明怎样忽视最后N行,并仅显示文件底部的其余行。以下示例将显示/var/log/secure的所有行,但最后250行除外。
Syntax: head -n -N FILENAME
$ head -n -250 /var/log/secure
示例4:使用tail命令显示文件的最后N行
本示例仅显示/var/log/messages文件的最后50行。将50修改为100,以显示日志文件的最后100行。
Syntax: tail -n N FILENAME
$ tail -n 50 /var/log/messages
示例5:使用tail命令忽视文件的前N-1行
本示例说明怎样忽视前N-1行,仅显示其余行。以下示例忽视了/etc/xinetd.conf的前四行,该行仅包含注释。
Syntax: tail -n +N FILENAME
$ tail -n +5 /etc/xinetd.conf
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
示例6:使用tail命令实时查看下降的日志文件
这可能是sysadmins最常用的命令之一。要查看不断下降的日志文件并仅查看更新的内容,请使用tail-f,如下所示。以下示例以实际形式显示/var/log/syslog命令的内容:时间。
Syntax: tail -f FILENAME
$ tail -f /var/log/syslog
示例7:使用head和tail命令显示文件的特定行(基于行号)
下边的示例将显示/var/log/anaconda.log文件的行号101–110
Syntax: cat file | tail -n +N | head -n (M-N+1)
$ cat /var/log/anaconda.log | tail -n +101 | head -n
10
示例8:显示与模式匹配的行,以及匹配以后的几行。
以下示例显示了与/var/log/dmesg中的“InitializingCPU”相匹配的行以及此匹配后的5行。
# grep "Initializing CPU#1" /var/log/dmesg
Initializing CPU#1
[Note: The above shows only the line matching the
pattern]
# grep -A 5 "Initializing CPU#1" dmesg
Initializing CPU#1
Calibrating delay using timer specific routine.. 3989.96 BogoMIPS
(lpj=1994982)
CPU: After generic identify, caps: bfebfbff 20100000 00000000
00000000
CPU: After vendor identify, caps: bfebfbff 20100000 00000000
00000000
monitor/mwait feature present.
CPU: L1 I cache: 32K, L1 D cache: 32K
[Note: The above shows the line and 5 lines after
the pattern matching]
示例9:显示文件中的特定字节。
以下示例说明了怎样显示文件的前40个字节或后30个字节。
显示syslog中的前40个字节。
$ head -c40 /var/log/syslog
显示syslog中的最后30个字节。
$ tail -c30 /var/log/syslog
示例10:查看压缩的日志文件
在特定时间过后linux漏洞扫描,所有系统日志文件都将旋转并压缩。您可以动态解压缩它,之后将输出通过管路传递到另一个unix命令以查看文件,如下所述。
参考:CodingisCool博客上来自我们JCG合作伙伴SaurabParakh的常见Linux日志文件名称和用法。
翻译自:
linux常用日志文件