linux系统日志及查看方法


目录
  1. 1. 日志文件的位置
  2. 2. 查看方式

linux作为服务器运行时,会产生大量的日志以记录系统运行状况。

日志文件的位置

Linux系统本身和大部分服务器程序的日志文件默认放在/var/log/下。 部分程序共用一个日志文件,一部分程序使用单个日志文件。 而有些大型服务器程序日志由于日志文件不止一个,所以会在/var/log/目录中建立相应的子目录来存放日志文件,这样既保证了日志文件目录的结构清晰,又可以快速定位日志文件。有一部分日志文件只有root用户才有权限读取,这保证了相关日志信息的安全性。

#常见的日志文件

日志文件 存放内容
/var/log/message 内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、 网络错误
/var/log/cron crond周期性计划任务产生的时间信息
/var/log/dmesg 引导过程中的各种时间信息
/var/log/maillog 进入或发出系统的电子邮件活动
/var/log/lastlog 每个用户最近的登录事件
/var/log/secure 用户认证相关的安全事件信息
/var/log/wtmp 每个用户登录注销及系统启动和停机事件
/var/log/btmp 失败的、错误的登录尝试及验证事件
  • 内核及大多数系统消息
    主要由默认安装的rsyslog软件包提供,rsyslog服务所使用的配置文件为/etc/rsyslog.conf,通过查看配置文件内容可以了解到系统默认的日志位置。

rsyslog日志服务是一个常会被攻击的目标,破坏了它将使运维员很难发现入侵及入侵的痕迹,因此要特别注意监控其守护进程及配置文件。

  • 用户日志:
    存放位置: /var/og/wtmp、 /var/log/btmp、 /var/log/lastlog

查看方式

  • 查询命令
    users、who、w、last、 lastlog、 lastb等。
    users命令:只是简单的输出当前登录的用户名,每个显示的用户名对应一个会话。
    who命令:报告当前登录到系统的每个用户的信息,包括用户名,终端,登录日期,远程主机。
    w命令:显示当前操作系统的每个用户及其远程所运行的进程信息。
    last命令:用于查询成功登录到系统的用户记录,最近的登录情况在最前面。 通过last命令可以及时掌握Linux主机的登录情况,若发现未经授权的用户登陆过,则表示当前主机可能已被入侵。
    lastlog命令:用于显示系统中所有用户最近一次登录信息。

grep -v “#” /etc/syslog.conf //列出非#打头的每一行

1
2
3
4
5
6
7
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
  • 查看日志常用命令
    tail:
    ​ -n 是显示行号;相当于nl命令;
    tail -100f test.log 实时监控100行日志;
    tail -n 10 test.log 查询日志尾部最后10行的日志;
    tail -n +10 test.log 查询10行之后的所有日志;

head:
​ 跟tail是相反的,tail是看后多少行日志,而head是查看日志文件的头多少行:
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;

cat:
​ tac是倒序查看,是cat单词反写:
cat -n test.log |grep "debug" 查询关键字的日志(常用!~)

tail -f
tail -f file 查看正在滚动的日志文件。这个命令可以查看大文件。