全面理解Linux 系统日志:核心文件与查看方法
全文目录
- 1 Linux 系统日志分类及功能
- 1.1 通用日志
- 1.1.1 /var/log/messages
- 1.1.2 /var/log/syslog
- 1.2 安全相关日志
- 1.2.1 /var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(RHEL/CentOS)
- 1.2.2 /var/log/audit/audit.log
- 1.3 启动与内核日志
- 1.3.1 /var/log/boot.log
- 1.3.2 /var/log/dmesg
- 1.4 用户与登录日志
- 1.4.1 /var/log/wtmp
- 1.4.2 /var/log/btmp
- 1.4.3 /var/log/lastlog
- 1.5 其他日志
- 1.5.1 /var/log/cron
- 1.5.2 /var/log/mail.log
- 1.5.3 /var/log/yum.log
- 2 查看日志常用方法说明
- 2.1 基础命令
- 2.2 专用工具
- 2.2.1 journalctl
- 2.2.2 dmesg
- 2.3 实时监控
- 3 注意事项
- 4 参考文献
写在前面:Linux 系统日志有哪些作用
Linux 系统日志记录了系统的关键状态信息,是系统运行监测的重要组成部分。作为运维人员或机器管理员熟练的掌握系统日志的作用及使用查看方式,对我们进行故障排查(系统启动、服务异常、硬件错误等信息,便于定位问题)、安全审计(追踪用户登录、权限变更、可疑行为等,检测未授权访问)、行为追踪(记录用户操作、定时任务执行、服务运行状态等)及性能监控(分析系统资源使用情况、网络活动等)等具有重要的指引,能够有效快速的帮助我们去定位并解决问题。
1 Linux 系统日志分类及功能
1.1 通用日志
1.1.1 /var/log/messages
- 功能: 记录系统级通用信息(如启动、服务错误、硬件事件)
- 查看方式:
cat /var/log/messages 或 less /var/log/messages - 结果展示: 如下
Apr 17 10:15:14 xxx-server systemd: Device dev-disk-by\x2dpartlabel-primary.device appeared twice with different sysfs paths /sys/devices/pci0000:00/0000:00:01.0/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2 and /sys/devices/pci0000:00/0000:00:01.0/0000:03:00.0/host0/target0:1:0/0:1:0:1/block/sdb/sdb1
Apr 17 10:15:14 xxx-server systemd: Device dev-disk-by\x2dpartlabel-primary.device appeared twice with different sysfs paths /sys/devices/pci0000:00/0000:00:01.0/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda2 and /sys/devices/pci0000:00/0000:00:01.0/0000:03:00.0/host0/target0:1:0/0:1:0:0/block/sda/sda4
Apr 17 10:25:01 xxx-server systemd: Created slice user-991.slice.
Apr 17 10:25:01 xxx-server systemd: Starting user-991.slice.
Apr 17 10:25:01 xxx-server systemd: Starting Session 614006 of user root.
Apr 17 10:25:01 xxx-server systemd: Removed slice user-991.slice.
Apr 17 10:25:01 xxx-server systemd: Stopping user-991.slice.
1.1.2 /var/log/syslog
- 功能: 存储全局系统活动(网络事件、服务日志等),Ubuntu 等发行版的核心日志
- 查看方式:
tail -f /var/log/syslog(实时跟踪)
1.2 安全相关日志
1.2.1 /var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(RHEL/CentOS)
- 功能: 记录用户登录、SSH 连接、sudo 操作等身份验证事件
- 查看方式:
grep "Failed" /var/log/auth.log(过滤失败登录) - 结果展示: /var/log/secure
Apr 17 10:30:01 xxx-server su: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/timeout 240 /bin/python2 /usr/local/xxx/xxx/xxx.py -u
Apr 17 10:36:37 xxx-server sss[20994]: Accepted password for zhangsan1 from 1.1.1.1 port 3183398 ssh2
Apr 17 10:36:37 xxx-server sss[20994]: pam_unix(sss:session): session opened for user zhangsan1 by (uid=0)
Apr 17 10:36:37 xxx-server sss[20994]: pam_sss(sss:session): Request to sssd failed. Connection refused
Apr 17 10:36:43 xxx-server sudo: zhangsan1 : TTY=pts/1 ; PWD=/home/xxx/zhangsan1 ; USER=root ; COMMAND=/bin/su -
Apr 17 10:36:43 xxx-server su: pam_unix(su-l:session): session opened for user root by zhangsan1(uid=0)
Apr 17 10:37:59 xxx-server sss[36641]: Received disconnect from 1.1.1.1: 11: disconnected by user
Apr 17 10:37:59 xxx-server su: pam_unix(su-l:session): session closed for user root
1.2.2 /var/log/audit/audit.log
- 功能: 存储 SELinux 或安全策略触发的审计事件
- 查看方式: ausearch 或直接查看文件
1.3 启动与内核日志
1.3.1 /var/log/boot.log
- 功能: 系统启动过程的详细记录(服务加载、初始化脚本)
- 查看方式: journalctl -b(通过 systemd 查看)
1.3.2 /var/log/dmesg
- 功能: 内核启动时的硬件和驱动信息
- 普通查看: dmesg | less 或直接查看文件
- 带时间戳查看: 代码如下
dmesg_with_human_timestamps () {$(type -P dmesg) "$@" | perl -w -e 'use strict;my ($uptime) = do { local @ARGV="/proc/uptime";<>}; ($uptime) = ($uptime =~ /^(\d+)\./);foreach my $line (<>) {printf( ($line=~/^\[\s*(\d+)\.\d+\](.+)/) ? ( "[%s]%s\n", scalar localtime(time - $uptime + $1), $2 ) : $line )}'
}
alias dmesg=dmesg_with_human_timestamps
- 日志信息: 如下图

1.4 用户与登录日志
1.4.1 /var/log/wtmp
- 功能: 永久记录用户登录、注销及系统启动/关机事件
- 查看方式: last 命令,可配合grep使用
last 参数说明:
-a 把从何处登入系统的主机名称或ip地址,显示在最后一行。
-d 指定记录文件。指定记录文件。将IP地址转换成主机名称。
-f <记录文件> 指定记录文件。
-n <显示列数>或-<显示列数> 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息日志展示:
zhangsan1 pts/1 server. Thu Apr 17 10:36 still logged in
zhangsan1 pts/0 server. Thu Apr 17 10:14 - 10:37 (00:23)
zhangsan1 pts/0 server. Mon Apr 14 19:11 - 19:35 (00:24)
zhangsan1 pts/1 server. Mon Apr 14 14:22 - 18:15 (03:52)
zhangsan1 pts/0 server. Mon Apr 14 14:22 - 18:15 (03:52)
zhangsan1 pts/1 server. Mon Apr 14 12:49 - 13:08 (00:18)
zhangsan1 pts/0 server. Mon Apr 14 12:45 - 13:07 (00:22)
zhangsan1 pts/0 server. Mon Apr 14 10:50 - 11:49 (00:58)
zhangsan1 pts/1 server. Sun Apr 13 23:01 - 23:53 (00:51)
zhangsan1 pts/0 server. Sun Apr 13 20:04 - 23:14 (03:09)
chensan2 pts/0 server. Wed Apr 9 11:36 - 14:43 (03:07)
1.4.2 /var/log/btmp
- 功能: 记录失败的登录尝试
- 查看方式: lastb 命令
1.4.3 /var/log/lastlog
- 功能: 显示用户最后一次登录的时间及来源
- 查看方式: lastlog 命令
1.5 其他日志
1.5.1 /var/log/cron
- 功能: 定时任务(cron)的执行记录
- 查看方式:
grep "CRON" /var/log/syslog(部分系统)
1.5.2 /var/log/mail.log
- 功能: 邮件服务(如 Postfix)的收发日志
- 查看方式:
tail /var/log/mail.log
1.5.3 /var/log/yum.log
- 功能: 使用yum安装软件包的相关日志
- 查看方式:
tail /var/log/yum.log
2 查看日志常用方法说明
2.1 基础命令
-
cat/less/tail:直接查看文件内容,如 tail -n 50 /var/log/syslog -
grep:过滤关键词,如 grep “error” /var/log/messages更加系统的了解更多文件处理命令,请移步《 Linux日志处理命令完全解构:从文件读取原理到百万级日志性能调优》
2.2 专用工具
2.2.1 journalctl
- 命令说明:journalctl 是 Linux 系统中用于查询和管理 systemd 日志的核心工具,支持对系统日志、内核日志、服务单元日志等进行高效检索和分析。其日志数据以二进制格式存储,支持动态过滤、时间范围筛选和多条件组合查询,适用于系统运维、故障排查及性能监控等场景
- 命令使用
journalctl [选项] [筛选条件]- 参数说明
-n <行数> # 显示最近的指定行数日志(如 -n 20 显示最近20条日志)-f # 实时跟踪最新日志(类似 tail -f)-u <服务名> # 查看指定服务的日志(如 -u nginx.service)-k # 仅显示内核日志-p <优先级> # 按日志优先级过滤(如 -p err 显示错误级别日志)--since <时间> # 指定起始时间(如 --since "2025-04-19 09:00:00")--until <时间> # 指定结束时间(如 --until "1 hour ago")-b [IDX] # 查看特定启动周期的日志(-b -1 表示上一次启动的日志)_COMM=<进程名> # 按进程名称过滤(如 _COMM=sshd 查看 SSH 进程日志)
- 使用场景
journalctl -f# 查看实时日志journalctl -u docker# 查看服务单元日志journalctl --since "08:00" --until "11:00" -p err# 筛选时间范围内的错误日志journalctl -b -1 -p 0..3# 分析启动问题(查看上一次启动的错误日志)
2.2.2 dmesg
- dmesg:实时查看内核消息,如
dmesg --follow
2.3 实时监控
- ausearch:分析审计日志(需安装 auditd 服务)
3 注意事项
- 不同发行版日志路径可能不同(如 Debian 用 auth.log,RHEL 用 secure)
- 需要 root 权限查看部分日志(如 /var/log/secure)
- 日志轮转机制(logrotate)可能影响历史日志的存储周期
4 参考文献
文献1|文献2|文献3|文献4|文献5
写在最后
以上是关于 Linux 系统日志的分析与整理(可能不全),希望能够帮助大家理清思路,对 Linux 的系统日志有更加深入的了解,同时如果有错误,也欢迎大家的评论指正,共同进步!
相关文章:
全面理解Linux 系统日志:核心文件与查看方法
全文目录 1 Linux 系统日志分类及功能1.1 通用日志1.1.1 /var/log/messages1.1.2 /var/log/syslog 1.2 安全相关日志1.2.1 /var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(RHEL/CentOS)1.2.2 /var/log/audit/au…...
机器学习-08-关联规则更新
总结 本系列是机器学习课程的系列课程,主要介绍机器学习中关联规则和协同过滤。 参考 机器学习(三):Apriori算法(算法精讲) Apriori 算法 理论 重点 【手撕算法】【Apriori】关联规则Apriori原理、代码…...
Flutter与FastAPI的OSS系统实现
作者:孙嘉成 目录 一、对象存储 二、FastAPI与对象存储 2.1 缤纷云S4服务API对接与鉴权实现 2.2 RESTful接口设计与异步路由优化 三、Flutter界面与数据交互开发 3.1 应用的创建 3.2页面的搭建 3.3 文件的上传 关键词:对象存储、FastAPI、Flutte…...
Kubernetes控制平面组件:API Server详解(二)
云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...
MySQL-锁机制3-意向共享锁与意向排它锁、死锁
文章目录 一、意向锁二、死锁应该如何避免死锁问题? 总结 一、意向锁 在表获取共享锁或者排它锁时,需要先检查该表有没有被其它事务获取过X锁,通过意向锁可以避免大量的行锁扫描,提升表获取锁的效率。意向锁是一种表级锁…...
报告系统状态的连续日期 mysql + pandas(连续值判断)
本题用到知识点:row_number(), union, date_sub(), to_timedelta()…… 目录 思路 pandas Mysql 思路 链接:报告系统状态的连续日期 思路: 判断连续性常用的一个方法,增量相同的两个列的差值是固定的。 让日期与行号 * 天数…...
pytest自动化中关于使用fixture是否影响用例的独立性
第一个问题:难道使用fixture 会影响用例独立吗? ✅ 简单回答: 使用 fixture ≠ 不独立。 只要你的 fixture 是每次测试都能自己运行、自己产生数据的,那么测试用例依然是“逻辑独立”的。 ✅ 怎么判断 fixture 是否影响独立性&a…...
Token与axios拦截器
目录 一、Token 详解 1. Token 的定义与作用 2. Token 的工作流程 3. Token 的优势 4. Token 的安全实践 5. JWT 结构示例 二、Axios 拦截器详解 1. 拦截器的作用 2. 请求拦截器 3. 响应拦截器 4. 拦截器常见场景 5. 移除拦截器 三、完整代码示例 四、总结 五、…...
unity3d实现物体闪烁
unity3d实现物体闪烁,代码如下: using UnityEngine;public class Test : MonoBehaviour {//创建一个常量,用来接收时间的变化值private float shake;//通过控制物体的MeshRenderer组件的开关来实现物体闪烁的效果private MeshRenderer BoxColliderClick…...
C#—Lazy<T> 类型(延迟初始化/懒加载模式)
C# 的 Lazy<T> 类型 Lazy<T> 是 C# 中的一个类,用于实现延迟初始化(懒加载)模式。它提供了一种线程安全的方式来延迟创建大型或资源密集型对象,直到第一次实际需要时才进行初始化。 主要特点 延迟初始化:…...
Spring Boot 项目启动命令解析
Spring Boot 项目启动命令参数 一、启动命令基础格式 java [JVM参数] [Spring Boot参数] -jar your-project.jar必选部分:java -jar your-project.jar 启动可执行 JAR 包。 可选部分: JVM 参数:控制 Java 虚拟机行为(如内存、垃…...
为什么 Docker 容器中有额外的目录(如 `/dev`、`/proc`、`/sys`)?及 `docker run` 详细执行过程
、当你使用 docker run 启动一个基于极简镜像(如 scratch 或手动构建的镜像)的容器时,发现容器内出现了 /dev、/proc、/sys 等目录,即使你的镜像中并未包含这些目录。这是因为 Docker 在启动容器时,会自动挂载一些必要…...
Tailwind 武林奇谈:bg-blue-400 失效,如何重拾蓝衣神功?
前言 江湖有云,Tailwind CSS,乃前端武林中的轻功秘籍。习得此技,排版如行云流水,配色似御风随形,收放自如,随心所欲。 某日,小侠你奋笔敲码,正欲施展“蓝衣神功”(bg-blue-400),让按钮怒气冲冠、蓝光满面,怎料一招使出,画面竟一片白茫茫大地真干净,毫无半点杀气…...
【Docker 运维】Java 应用在 Docker 容器中启动报错:`unable to allocate file descriptor table`
文章目录 一、根本原因二、判断与排查方法三、解决方法1、限制 Docker 容器的文件描述符上限2、在执行脚本中动态设置ulimit的值3、升级至 Java 11 四、总结 容器内执行脚本时报错如下,Java 进程异常退出: library initialization failed - unable to a…...
开始放飞之先搞个VSCode
文章目录 开始放飞之先搞个VSCode重要提醒安装VSCode下载MinGW-w64回到VSCode中去VSCode原生调试键盘问题遗留问题参考文献 开始放飞之先搞个VSCode 突然发现自己的新台式机上面连个像样的编程环境都没有,全是游戏了!!!ÿ…...
基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SA模拟退火算法的车间调度优化matlab仿真,输出甘特图和优化收敛曲线。输出指标包括最小平均流动时间,最大完工时间,最小间隙时间。 2…...
【仿Mudou库one thread per loop式并发服务器实现】SERVER服务器模块实现
SERVER服务器模块实现 1. Buffer模块2. Socket模块3. Channel模块4. Poller模块5. EventLoop模块5.1 TimerQueue模块5.2 TimeWheel整合到EventLoop5.1 EventLoop与线程结合5.2 EventLoop线程池 6. Connection模块7. Acceptor模块8. TcpServer模块 1. Buffer模块 Buffer模块&…...
基于Redis实现高并发抢券系统的数据同步方案详解
在高并发抢券系统中,我们通常会将用户的抢券结果优先写入 Redis,以保证系统响应速度和并发处理能力。但数据的最终一致性要求我们必须将这些结果最终同步到 MySQL 的持久化库中。本文将详细介绍一种基于线程池 Redis Hash 扫描的异步数据同步方案&#…...
SPL 量化 序言
序言 量化交易是通过数学模型、统计学方法和计算机技术,将市场行为转化为可执行的交易策略的自动化投资方式。其核心是通过大数据分析、机器学习和金融工程等技术,从历史数据中挖掘市场规律,预测价格趋势并生成交易信号。 量化交易的实现通…...
【LLM Prompt】CoT vs.ToT
CoT(Chain of Thought) Definition: CoT refers to the method of prompting a language model to generate responses in a step-by-step manner, explicitly showing the reasoning process leading to the final answer.定义: CoT 是一种提示语言模型…...
uniapp h5接入地图选点组件
uniapp h5接入地图选点组件 1、申请腾讯地图key2、代码接入2.1入口页面 (pages/map/map)templatescript 2.2选点页面(pages/map/mapselect/mapselect)templatescript 该内容只针对uniapp 打包h5接入地图选点组件做详细说明&#x…...
【Rust 精进之路之第13篇-生命周期·进阶】省略规则与静态生命周期 (`‘static`)
系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025年4月20日 引言:让编译器“读懂”你的意图——省略的艺术 在上一篇【生命周期入门】中,我们理解了生命周期的必要性——它是 Rust 编译器用来确保引用有效性、防止悬垂引用的关键机制。我…...
OSI模型和传输过程
OSI模型概述 OSI(Open Systems Interconnection)模型是由国际标准化组织(ISO)提出的一个概念性框架,用于标准化网络通信功能。它将网络通信分为七层,每一层负责特定的功能,并通过接口与相邻层交…...
MySQL-CASE WHEN条件语句
介绍 MySQL 中的一种流程控制语法结构,用于在 SQL 查询中实现条件逻辑。它允许你根据一个或多个条件的真假来返回不同的值。可以根据某些条件对数据进行分类或者转换。 使用方式 简单 CASE 表达式 CASE input_expressionWHEN when_expression THEN result_expre…...
【随缘更新,免积分下载】Selenium chromedriver驱动下载(最新版135.0.7049.42)
目录 一、chromedriver概述 二、chromedriver使用方式 三、chromedriver新版本下载🔥🔥🔥 四、Selenium与Chrome参数设置🔥🔥 五、Selenium直接操控已打开的Chrome浏览器🔥🔥🔥…...
jenkins批量复制Job项目的shell脚本实现
背景 现在需要将“测试” 目录中的所有job全部复制到 一个新目录中 test2。可以结合jenkins提供的apilinux shell 进行实现。 测试目录的实际文件夹名称是 test。 脚本运行效果如下: [qdevsom5f-dev-hhyl shekk]$ ./copy_jenkins_job.sh 创建文件夹 test2 获取源…...
iOS Google登录
iOS Google登录 SDK下载地址在 Firebase 有下载,要下载整个SDK文件,然后拿其中的Google 登录SDK来使用 Firebase 官方文档 github 下载链接...
嵌入式工程师( C / C++ )笔试面试题汇总
注:本文为 “嵌入式工程师笔试面试题” 相关文章合辑。 未整理去重。 如有内容异常,请看原文。 嵌入式必会 C 语言笔试题汇总 Z 沉浮 嵌入式之旅 2021 年 01 月 19 日 00:00 用预处理指令 #define 声明一个常数,用以表明 1 年中有多少秒&a…...
重构便携钢琴专业边界丨特伦斯便携钢琴V30Pro定义新一代便携电钢琴
在便携电钢琴领域,特伦斯推出的V30Pro折叠钢琴以"技术革新场景适配"的双重升级引发关注。这款产品不仅延续了品牌标志性的折叠结构,更通过声学系统重构与智能交互优化,重新定义了便携乐器的专业边界。 ▶ 核心特点:技术…...
DiffuRec: A Diffusion Model for Sequential Recommendation
DiffuRec: A Diffusion Model for Sequential Recommendation Background 序列推荐(Sequential Recommendation, SR)领域,主流方法是将用户与物品表示为fixed embedding。然而,这种静态向量表达方式难以全面刻画用户多样化的兴趣…...
