Linux常见问题-获取日志方法总结(Ubuntu/Debian)
1 日志基本路径和基础查看方法
在 Ubuntu 或 Debian 11 系统中,可以通过不同的日志文件来获取系统日志和内核日志。日志常见路径如下:
- /var/log/syslog:包含系统的整体日志,包括各种系统事件和服务日志。
- /var/log/auth.log:记录用户认证和授权相关的日志,如登录、sudo 使用等。
- /var/log/kern.log:内核相关的日志,包括硬件和驱动程序问题。
- /var/log/dmesg:包含内核环缓冲区的消息,可以用来查看系统启动期间的信息。
说明:这些日志一般都是有多个,这里以kern.log为例,一般从下到上的时间顺序,如下所示:
-rw-r----- 1 syslog adm 1662 2月 6 06:58 kern.log
-rw-r----- 1 syslog adm 366757 2月 3 00:00 kern.log.1
-rw-r----- 1 syslog adm 6504 1月 25 12:24 kern.log.2.gz
-rw-r----- 1 syslog adm 16436 1月 17 21:31 kern.log.3.gz
-rw-r----- 1 syslog adm 51381 1月 11 23:25 kern.log.4.gz
这里可以使用以下命令查看这些日志文件的内容,如下所示:
$cat /var/log/syslog
$cat /var/log/auth.log
$cat /var/log/kern.log
$cat /var/log/dmesg
如果想实时监视日志文件的更新,可以使用 tail 命令加上 -f 参数如下:
$tail -f /var/log/syslog
$tail -f /var/log/auth.log
$tail -f /var/log/kern.log
$tail -f /var/log/dmesg
2 日志查看和过滤工具
除了直接查看日志文件之外,还有一些常用的工具可以帮助你抓取和分析系统日志和内核日志。以下是一些常见的工具:
2.1 journalctl
journalctl是 systemd 系统日志记录器的命令行工具,用于查看和分析系统日志。它可以以可读的格式显示日志,并支持按时间、单元(服务)、PID 等进行过滤和搜索。它提供了许多参数和选项,用于过滤、搜索和格式化日志输出。以下是 journalctl 常见的参数和使用示例:
@1 基本用法总结如下:
#查看最新的系统日志:
$journalctl
#查看指定单位(服务)的日志:
$journalctl -u unit-name.service
#查看指定用户的日志:
$journalctl -u user-name
#查看指定时间范围内的日志:
$journalctl --since "2023-12-01 00:00:00" --until "2023-12-02 23:59:59"
@2 过滤和搜索总结如下:
#根据优先级过滤日志。其中,priority 可以是数字(0 至 7)或对应的名称(如 emerg、alert、crit、err、warning、notice、info、debug):
$journalctl -p priority
#根据日志来源过滤日志:
$journalctl -b SYSLOG_IDENTIFIER=source-name
#搜索特定关键字的日志,这将搜索包含关键字的日志消息:
$journalctl -t keyword
@3 输出格式:
#以可读的格式显示日志:
$journalctl -o short
#以 JSON 格式显示日志:
$journalctl -o json
#以详细格式显示日志:
$journalctl -o verbose
#以特定字段的格式显示日志:
$journalctl -o field --field=FIELD_NAME
2.2 dmesg
dmesg 是一个用于读取和打印内核环缓冲区消息的命令。它可以查看系统启动信息、硬件设备和内核模块相关的日志。以下是 dmesg 常见的参数和使用示例总结:
#查看系统启动信息:
$dmesg
#以逆序方式查看最新的内核日志:
$dmesg -r
#仅显示指定级别的内核日志(可用级别:emerg, alert, crit, err, warning, notice, info, debug):
$dmesg --level=LEVEL
#过滤显示包含指定关键字的内核日志:
$dmesg --grep=KEYWORD
#限制输出的行数:
$dmesg -n NUM_LINES
2.3 syslog-ng
syslog-ng是一个高度可配置的系统日志守护进程,它可以收集、过滤和转发系统日志。它支持多种日志源和目标,并提供灵活的日志处理和存储功能。
以下是一个简单的使用案例:
#安装 syslog-ng
$sudo apt-get install syslog-ng
#创建一个自定义的 syslog-ng 配置文件
$sudo vim /etc/syslog-ng/conf.d/myconfig.conf
在 myconfig.conf 文件中,可以定义日志源、过滤规则和目标。以下是一个简单的demo示例:
# 定义日志源为本地系统日志
source s_local {system();
};# 过滤规则:仅保留来自特定设备的日志
filter f_myfilter {host("192.168.1.100");
};# 定义目标为远程日志服务器
destination d_remote {syslog("192.168.2.200" port(514));
};# 配置日志源、过滤规则和目标的关联
log {source(s_local);filter(f_myfilter);destination(d_remote);
};
保存并关闭文件后,重新启动 syslog-ng 服务:
$sudo systemctl restart syslog-ng
这个示例配置将从本地系统收集日志,然后根据过滤规则将特定设备的日志转发到远程日志服务器。
2.4 rsyslog
类似于 syslog-ng,rsyslog也是一个常见的系统日志守护进程。它可以收集、转发和处理系统日志,并支持各种配置选项和插件。
以下是一个简单的使用案例:
#安装 rsyslog
$sudo apt-get install rsyslog
#创建一个自定义的 rsyslog 配置文件
$sudo vim /etc/rsyslog.d/myconfig.conf
在 myconfig.conf 文件中,你可以定义日志源、过滤规则和目标。以下是一个简单的demo示例:
# 过滤规则:仅保留来自特定设备的日志
if $fromhost-ip == '192.168.1.100' then {action(type="omfwd" target="192.168.2.200" port="514" protocol="udp");
}
保存并关闭文件后,重新启动 rsyslog 服务:
$sudo systemctl restart rsyslog
这个示例配置将根据过滤规则将来自特定设备的日志转发到远程日志服务器。
2.5 logrotate
logrotate是一个实用程序,用于管理日志文件的轮转。它可以自动压缩和归档旧的日志文件,以便节省磁盘空间并确保日志文件不会无限增长。
以下是一个简单的使用案例:
# 创建一个自定义的 logrotate 配置文件
$sudo vim /etc/logrotate.d/mylog
在 mylog 文件中,你可以指定要轮转的日志文件、轮转频率、保存的旧日志文件数量等。以下是一个简单的demo示例:
# 轮转 /var/log/mylog.log 文件,每天轮转一次,保留最近的 7 个旧日志文件
/var/log/mylog.log {dailyrotate 7compress
}
保存并关闭文件后,logrotate 将根据配置文件的设置定期轮转日志文件。
2.6 总结
- 这些工具提供了更灵活和高级的功能,能够更方便地查看、分析和管理系统日志和内核日志。可以根据自己的需求选择适合的工具来使用。
- 注意,可能需要使用 sudo 或以 root 用户身份运行这些命令来访问一些日志文件,特别是位于 /var/log 目录下的文件。
相关文章:
Linux常见问题-获取日志方法总结(Ubuntu/Debian)
1 日志基本路径和基础查看方法 在 Ubuntu 或 Debian 11 系统中,可以通过不同的日志文件来获取系统日志和内核日志。日志常见路径如下: /var/log/syslog:包含系统的整体日志,包括各种系统事件和服务日志。/var/log/auth.log&…...

【机器视觉技术栈】03 - 镜头
镜头 定焦镜头变焦镜头远心镜头 FA镜头与远心镜头的区别? 焦距越小畸变程度越大,精度要求不高的场景可以使用焦距大的FA镜头做尺寸测量,但焦距越大带来的问题就是整个机械设备越大。精度高的场景使用远心镜头进行尺寸测量。 光学基础知识…...

判断一个Series序列的值是否为单调递减Series.is_monotonic_decreasing
【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断一个Series序列中 各值是否单调递减 s.is_monotonic_decreasing [太阳]选择题 以下代码的输出结果中正确的是? import pandas as pd s1 pd.Series([3,2,1]) s2 pd.Series([3,2,4]) pri…...

CSPNet: A New Backbone that can Enhance Learning Capability of CNN(2019)
文章目录 -Abstract1 Introduction2 Related workformer work 3 Method3.1 Cross Stage Partial Network3.2 Exact Fusion Model 4 Experiments5 Conclusion 原文链接 源代码 - 梯度信息重用(有别于冗余的梯度信息)可以减少计算量和内存占用提高效率&am…...

本科毕业论文查重的依据
大家好,今天来聊聊本科毕业论文查重的依据,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 本科毕业论文查重依据:维护学术诚信的基石 摘要: 本科毕业论文是衡量学生学…...

如何利用Axure制作移动端产品原型
Axure是一款专业的快速原型设计工具,作为专业的原型设计工具,Axure 能够快速、高效地创建原型,同时支持多人协作设计和版本控制管理。它已经得到了许多大公司的采用,如IBM、微软、思科、eBay等,这些公司都利用Axure 进…...
Java中时间之间的转换
Java中常见的时间类有:Date、Calendar、SimpleDateFormat等。下面对不同时间类之间的转换进行介绍。 1、Date和Calendar之间的转换 Date和Calendar都可以表示时间,但是它们的使用方式不同。Date是一个表示特定时间点的类,而Calendar则是一个…...

【win32_005】调试信息打印到控制台----2种简单方法
方法1:使用win32 api函数 PCTSTR str1 TEXT("123456789");AllocConsole();HANDLE HConsole GetStdHandle(STD_OUTPUT_HANDLE);WriteConsole(HConsole, str1, 9, NULL, NULL);https://learn.microsoft.com/zh-cn/windows/console/writeconsole 方…...

PPT添加备注
0 Preface/Foreward 1 添加备注方法 添加备注方法:在page的最下端,有一个空白文本框,该文本框用来添加备注。...

Ubuntu20.04使用cephadm部署ceph集群
文章目录 Requirements环境安装Cephadm部署Ceph单机集群引导(bootstrap)建立新集群 管理OSD列出可用的OSD设备部署OSD删除OSD 管理主机列出主机信息添加主机到集群从集群中删除主机 部署Ceph集群 Cephadm通过在单个主机上创建一个Ceph单机集群࿰…...

激光打标机在智能手表上的应用:科技与时尚的完美结合
随着科技的飞速发展,智能手表已经成为我们日常生活中不可或缺的智能设备。而在智能手表制造中,激光打标机扮演着至关重要的角色。本文将详细介绍激光打标机在智能手表制造中的应用,以及其带来的优势和影响。 一、激光打标机在智能手表制…...

ROS-ROS通信机制-参数服务器
文章目录 一、基础理论知识二、C实现三、Python实现 一、基础理论知识 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点…...
在github中通过action自动化部署 hugo academic theme,实现上传md文件更新博客内容
在github中通过action自动化部署 hugo academic theme 一、GitHub Action自动化部署Hugo博客方法 主要参考:【Hugo网站搭建】GitHub Action自动化部署Hugo博客 次要参考:使用 Github Action 自动部署 Hugo 博客 二、部署过程中遇到的问题和解决办法 …...
深入理解asyncio:异步编程的基础用法
引言: 随着计算机硬件的不断发展,对于异步编程的需求也越来越强烈。Python中的asyncio模块为开发者提供了一种强大而灵活的异步编程方式。本文将介绍asyncio的基础用法,包括async/await/run语句的使用、多个协程的并发执行、以及在协程中进行…...
Android 消息分发机制解读
前言 想必大家都知道Android系统有自己的一套消息分发机制,,从App启动那一刻起,App就创建了主线程的消息分发实例:Looper.sMainLooper,并开始无限循环,也就是App的心脏,一直跳动,负责协调分配来…...
【ML】LSTM应用——预测股票(基于 tensorflow2)
LSTM 应用预测股票数据 所用数据集:https://www.kaggle.com/datasets/yuanheqiuye/bank-stock 基于:tensorFlow 2.x 数据处理 import numpy as np import pandas as pd from matplotlib import pyplot as plt from sklearn.model_selection import tr…...

汇编语言程序设计实验报告
一、实验一 1、实验内容 (1)用Debug命令查看寄存器和内存中的内容 (2)上机过程及程序调试 2、实验目的 (1)要求掌握使用Debug命令查看寄存器和内存的方法; (2)通过…...
广域网(WAN)设备通信过程(通信流程、通信步骤、通信顺序、设备通信、主机通信)(MAC地址在本地链路中的作用)跳跃(hop)
文章目录 广域网(WAN)通信:MAC地址在本地链路中的作用引言MAC地址概述什么是MAC地址?如何工作? MAC地址与广域网MAC地址的局限性IP地址和路由 广域网设备通信过程1. 请求生成2. 封装数据帧3. 确定下一跳4. 数据传输5. …...

ExoPlayer架构详解与源码分析(10)——H264Reader
系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)—…...

智能优化算法应用:基于粒子群算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于粒子群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于粒子群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.粒子群算法4.实验参数设定5.算法结果6.参考文…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...