http://os.51cto.com/art/201108/282184_all.htm
1、Linux下重要日志文件介绍
/var/log/boot.log
该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示:
图1 /var/log/boot.log示意
/var/log/cron
该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。CMD的一个动作是cron派生出一个调度进程的常见情况。REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。该文件可能会查到一些反常的情况。该文件的示意请见图2:
图2 /var/log/cron文件示意
/var/log/maillog
该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。图3所示是该日志文件的片段:
图3 /var/log/maillog文件示意
该文件的格式是每一行包含日期、主机名、程序名,后面是包含PID或内核标识的方括号、一个冒号和一个空格,最后是消息。该文件有一个不足,就是被记录的入侵企图和成功的入侵事件,被淹没在大量的正常进程的记录中。但该文件可以由/etc/syslog文件进行定制。由/etc/syslog.conf配置文件决定系统如何写入/var/messages。
/var/log/syslog
默认Fedora不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。要让系统生成该日志文件,在/etc/syslog.conf文件中加上:*.warning /var/log/syslog 该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。在每次用户登录时被查询,该文件是二进制文件,需要使用lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间。如果某用户从来没有登录过,就显示为"**Never logged in**"。该命令只能以root权限执行。简单地输入lastlog命令后就会看到类似图4的信息:
图4 lastlog命令的运行结果
/var/log/wtmp
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
/var/run/utmp
该日志文件记录有关当前登录的每个用户的信息。因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。
以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存的,故不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看。其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数据结构可以使用man命令查询。
每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。该记录一直用到用户登录退出时删除。utmp文件被各种命令使用,包括who、w、users和finger。
下一步,login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。wtmp文件被程序last使用。
/var/log/xferlog
该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。
该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型(a:ASCII,b:二进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务器而言:i代表进,o代表出)、访问模式(a:匿名,g:输入口令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或0),认证用户的ID或"*"。图5是该文件的部分显示:
图5 /var/log/xferlog文件示意
2、Linux日志输出查看方式
Linux下面提供了许多文本工具来查看和处理日志文件,下面给读者提供一些比较常见和有用的工具。
dmesg
使用dmesg命令可以快速查看最后一次系统引导的引导日志。如图6所示:
图6 dmesg显示结果
如上所示,通常它的内容会很多,所以我们往往使用如下命令以分页的方式显示引导信息,如图7所示:
# dmesg | more
图7 dmesg|more命令显示结果
tail
tail命令设计用于显示文本文件的最后几行。使用-f开关,当日志增加新的内容时,tail将继续显示新的输出。如图8所示:
# tail -f /var/log/messages
图8 使用tail查看日志
上面的命令将显示/var/log/messages文件的最后6行,然后继续监控那个文件,并输出新的行为。要停止tail -f命令,使用[Ctrl + C]来中止进程。
more和less
more的工作方式与DOS版本相同。您可以将它指向一个文件,或者通过它以管道输出信息,以分页的方式来查看信息。例如,以分页方式显示maillog日志文件的内容:
# more maillog
图9 使用more查看日志
然后,可以使用q或者[Ctrl+C]来停止查看文件。
less 是另一个文本阅读器,不过它还允许在文件中滚动浏览以及检索信息。如下所示:
# less /var/log/cron-20090830
图9 使用less命令查看日志
上面的命令将显示/var/log/yum.log文件的内容,可以使用q来停止查看文件。
其他方式
Linux中的日志文件对于系统的故障诊断和维护来说至关重要。许多诸如WWW、FTP、SMTP等网络应用服务的Linux日志记录都是记录到专门指定的文本文件中(比如access.log,error.log等等),所以不需要专门的工具来查看这些文件。用户可以选择Vi、gEdit等简单的文本编辑工具查看使用。
3、Linux日志使用的重要原则
系统管理人员要应该提高警惕,随时注意各种可疑状况,并且按时和随机地检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时,要注意是否有不合常理的时间记载。例如:
- 用户在非常规的时间登录;
- 不正常的日志记录,比如日志的残缺不全或者是诸如wtmp这样的日志文件无故地缺少了中间的记录文件;
- 用户登录系统的IP地址和以往的不一样;
- 用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录;
- 非法使用或不正当使用超级用户权限su的指令;
- 无故或者非法重新启动各项网络服务的记录。
尤其提醒管理人员注意的是:日志并不是完全可靠的。高明的黑客在入侵系统后,经常会打扫现场。所以需要综合运用以上的系统命令,全面、综合的进行审查和检测,切忌断章取义,否则很难发现入侵或者做出错误的判断。
另外,在有些情况下,可以把日志送到打印机,这样网络入侵者怎么修改日志都没有用。并且,通常要广泛记录日志。另外,syslog设备是一个攻击者的显著目标。一个为其他主机维护日志的系统对于防范服务器攻击特别脆弱,因此要特别注意。
Linux下重要日志文件及查看方式的更多相关文章
-
linux下 大日志文件查看与搜索---less
场景 有一个几十m的大日志文件,里边的记录是按时间排序的. 现在需要找到其中,不知道在什么位置的一条错误消息.这时候,想把内容拷出来都费劲,就算拷出来了,一般的编辑器也难以hold住这么大的文件.这时 ...
-
linux下tomcat日志文件现问号乱码
在使用liunux系统下,使用tomcat记录的日志出现乱码的情况,不能显示中文,中文出现?问号乱码情况,不能正常查看 linux下乱码可能有三个情况 1.linux不含中文支持语言包 打开远程连接客 ...
-
linux下二机制文件的查看和编辑
linux下很多命令都是二机制:/bin/下的各种命令---/bin/sh./bin/cat./bin/dmesg./bin/hostname等 如何查看这些二机制文件: xxd.hexdump 参考 ...
-
linux二进制/十六进制日志文件如何查看和编辑
使用cat查看二进制,显示乱码 [root@localhost ~]# cat /var/log/wtmp ~~~reboot3.10.0-514.el7.x86_64 �YO#5~~~runleve ...
-
Linux下重要日志及查看方式
1.Linux下重要日志文件介绍 /var/log/boot.log 该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息,如图1所示: 图1 /var/log/boot. ...
-
查看Linux下*.a库文件中文件、函数、变量
查看Linux下*.a库文件中文件.函数.变量等情况在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t xxx.a 2. ...
-
(转)Mysql数据库之Binlog日志使用总结Linux下用户组、文件权限详解
Linux下用户组.文件权限详解 原文:http://blog.csdn.net/sdulibh/article/details/51566772 用户组 在linux中的每个用户必须属于一个组,不能 ...
-
Linux /var/log下各种日志文件
Linux /var/log下各种日志文件:
-
linux下syslog-ng日志集中管理服务部署记录
syslog是Linux系统默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件.syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点 ...
随机推荐
-
python之(re)正则表达式下
知识储备: \w 匹配任何字母/数字,下划线 正则表达式进阶: re.match('com', 'comwww.runcomoob') re.search('\dcom', 'www.4comruno ...
-
如何给main传参数
main 函数的参数有连个argc argcv[] argc 是参数个数 argcv是参数的数组指针,且argcv的第一个参数是默认程序路径加程序名 给main传参数,需要在命令行启动程序时设置 如 ...
-
json:There is a cycle in the hierarchy!
在使用JSONObject.fromObject的时候,出现“There is a cycle in the hierarchy”异常. 意思是出现了死循环,也就是Model之间有循环包含关系: 解决 ...
-
python 使用多线程进行压力测试
#coding=utf-8 import urllib2 import threading import time TOTAL = 0 #总数 SUCC = 0 #响应成功数 FAIL = 0 #响应 ...
-
Intellij编译时报“java: System Java Compiler was not found in classpath” 解决办法
Intellij编译时报“java: System Java Compiler was not found in classpath” 解决方法: Project Settings > Comp ...
-
【高级算法】模拟退火算法解决3SAT问题(C++实现)
转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46453761 ---------------------------------- ...
-
box-shadow阴影详解
每次使用box-shadow,都要查阅资料才能实现对应的效果,现在总结一下,方便以后查看. 使用语法: element{box-shadow: inset x-offset y-offset blur ...
-
C语言第三次作业--嵌套循环
一.PTA实验作业 题目1:硬币数 1. 本题PTA提交列表 2. 设计思路 步骤一:定义整型变量fen5,fen2,fen1,表示1分2分和5分,零钱数额x,总硬币数total,换法count 步骤 ...
-
A - 小孩报数问题
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数 ...
-
[微信小程序直播平台开发]___(三)Nginx-rtmp事件回调
1.一个可以忽略的前言 发起直播后可以在Nginx的自带的页面上查看到统计,那怎么知道发起了直播或者关闭了直播呢?我想到了这个统计页,于是查看一下里面的内容看看如何获取到的数据, 找到后发现是个xsl ...