当前位置: 首页 > news >正文

如何在 Linux 上使用 dmesg 命令

文章目录

  • 1. Overview
  • 2.ring buffer怎样工作?
  • 3.dmesg命令
  • 4.移除sudo需求
  • 5. 强制彩色输出
  • 6.使用人性化的时间戳
  • 7.使用dmesg的人性化可读时间戳
  • 8.观察实时event
  • 9.检索最后10条消息
  • 10.搜索特定术语
  • 11.使用Log Levels
  • 12.使用Facility Categories
  • 13.Combining Facility and Level
  • 14.结尾

1. Overview

  • dmesg 命令允许查看存储在 Linux ring buffer中的消息,从而深入了解硬件错误和启动问题。
  • 我们能自定义dmesg命令组合,实现如下目的:

removing the need for sudo(消除对 sudo 的需要)
forcing color output(强制颜色输出)
using human-readable timestamps(使用人性化可读的时间戳)
watching live events(观看实时事件)
retrieving the last messages(检索最后的消息)
searching for specific terms(搜索特定术语)
filtering by log levels or facility categories(按日志级别或设施类别进行过滤来自定义 dmesg 命令)
总之,dmesg 命令可帮助我们深入了解 Linux 启动过程中的隐藏世界。 检查和监视来自内核自己的环形缓冲区的硬件设备和驱动程序消息。

2.ring buffer怎样工作?

在 Linux 和类 Unix 计算机中,booting和startup动是计算机power on时发生的事件序列的两个不同阶段。
booting过程(BIOS 或 UEFI、MBR 和 GRUB)将系统初始化到加载内核到内存并连接到初始 RAM 磁盘(initrd 或 initramfs)以及启动 systemd 的阶段。

然后startup过程接手,完成操作系统的初始化。 在初始化的早期阶段,日志守护进程(例如 syslogd 或 rsyslogd)尚未启动并运行。 为了避免在初始化阶段丢失错误消息和警告,内核包含一个用于消息存储的环形缓冲区(ring buffer)。
环形缓冲区是为消息保留的内存空间。 它设计简单,尺寸固定。 当它已满时,较新的消息将覆盖最旧的消息。 从概念上讲,它可以被认为是“循环缓冲区(cirular buffer)”。
内核环形缓冲区存储设备驱动程序的初始化消息、来自硬件的消息以及来自内核模块的消息等信息。 由于环形缓冲区包含这些低级启动消息,因此它是开始调查硬件错误或其他启动问题的好地方。

这就是 dmesg 命令发挥作用的地方。

3.dmesg命令

dmesg 命令允许查看存储在ring buffer中的消息。 默认情况下,需要使用 sudo 才能使用 dmesg。

sudo dmesg

ring buffer中的所有消息都显示在终端窗口中。

Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Linux version 2.6.32-300.10.1.el5uek (mockbuild@ca-build56.us.oracle.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Wed Feb 22 17:37:40 EST 2012
Command line: ro root=LABEL=/ rhgb quiet
KERNEL supported cpus:
Intel GenuineIntel
AMD AuthenticAMD
Centaur CentaurHauls
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bfee0000 (usable)
BIOS-e820: 00000000bfee0000 - 00000000bfeff000 (ACPI data)
BIOS-e820: 00000000bfeff000 - 00000000bff00000 (ACPI NVS)
BIOS-e820: 00000000bff00000 - 00000000c0000000 (usable)
BIOS-e820: 00000000f0000000 - 00000000f8000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 00000001c0000000 (usable)
DMI present.
Phoenix BIOS detected: BIOS may corrupt low RAM, working around it.

由于内容太多,需要做使用 less 进行管道传输:

sudo dmesg | less

pciehp 0000:00:15.0:pcie04: service driver pciehp loaded
pciehp 0000:00:15.1:pcie04: HPC vendor_id 15ad device_id 7a0 ss_vid 0 ss_did 0
pciehp 0000:00:15.1:pcie04: service driver pciehp loaded
pciehp 0000:00:15.2:pcie04: HPC vendor_id 15ad device_id 7a0 ss_vid 0 ss_did 0
pciehp 0000:00:15.2:pcie04: service driver pciehp loaded
pciehp 0000:00:15.3:pcie04: HPC vendor_id 15ad device_id 7a0 ss_vid 0 ss_did 0
pciehp 0000:00:15.3:pcie04: service driver pciehp loaded
pciehp 0000:00:15.4:pcie04: HPC vendor_id 15ad device_id 7a0 ss_vid 0 ss_did 0
pciehp 0000:00:15.4:pcie04: service driver pciehp loaded
pciehp 0000:00:15.5:pcie04: HPC vendor_id 15ad device_id 7a0 ss_vid 0 ss_did 0
pciehp 0000:00:15.5:pcie04: service driver pciehp loaded
pciehp 0000:00:15.6:pcie04: HPC vendor_id 15ad device_id 7a0 ss_vid 0 ss_did 0
pciehp 0000:00:15.6:pcie04: service driver pciehp loaded
/service

可以使用 less 中的搜索功能来定位并突出显示感兴趣的项目和术语。通过在 less 中按正斜杠键“/”来启动搜索功能。

4.移除sudo需求

如果想避免每次使用 dmesg 时都必须使用 sudo,可以使用此命令。
但是,请注意:它允许任何拥有您计算机用户帐户的人使用 dmesg,而无需使用 sudo。

sudo sysctl -w kernel.dmesg_restrict=0

5. 强制彩色输出

默认情况下,dmesg 可能会配置为生成彩色输出。 如果不是,可以告诉 dmesg 使用 -L(颜色)选项为其输出着色。

sudo dmesg -L

要强制 dmesg 始终默认为彩色显示,使用以下命令:

sudo dmesg --color=always

6.使用人性化的时间戳

默认情况下,dmesg 使用自内核启动以来的秒和纳秒时间戳记法。 要以更人性化的格式呈现此内容,请使用 -H(人性化)选项。

这会导致两件事发生。

[Jul30 10:26] Initializing cgroup subsys cpuset
[ +0.000000] Initializing cgroup subsys cpu
[ +0.000000] Initializing cgroup subsys cpuacct
[ +0.000000] Linux version 3.10.0-1062.12.1.el7.x86_64 (mockbuild@jenkins-10-147-72-125-c2dc54eb-871b-45db-b195-4c48862bf1cf) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39.0.1) (GCC) ) #1 SMP Tue Feb 4 15:08:25 PST
[ +0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-1062.12.1.el7.x86_64 root=UUID=521925fd-a19d-46cb-8b1a-8edb5291928f ro crashkernel=auto rhgb quiet numa=off transparent_hugepage=never LANG=en_US.UTF-8
[ +0.000000] Disabled fast string operations
[ +0.000000] e820: BIOS-provided physical RAM map:
[ +0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
[ +0.000000] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
[ +0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
[ +0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bfedffff] usable
[ +0.000000] BIOS-e820: [mem 0x00000000bfee0000-0x00000000bfefefff] ACPI data
[ +0.000000] BIOS-e820: [mem 0x00000000bfeff000-0x00000000bfefffff] ACPI NVS
[ +0.000000] BIOS-e820: [mem 0x00000000bff00000-0x00000000bfffffff] usable
[ +0.000000] BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
[ +0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
[ +0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ +0.000000] BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved
[ +0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000043fffffff] usable

输出会自动以 less 形式显示。
时间戳显示带有日期和时间的时间戳,分辨率为分钟。 每分钟发生的消息都标有从该分钟开始算起的秒数和纳秒数。

7.使用dmesg的人性化可读时间戳

如果不需要纳秒精度,但确实希望时间戳比默认值更容易阅读,可以使用 -T (人类可读)选项。(这有点令人困惑。-H 是“人性化”选项,-T 是“人性化可读”选项。)

sudo dmesg -T

时间戳呈现为标准日期和时间,但分辨率降低到一分钟。

[Sun Jul 30 10:26:23 2023] Disabled fast string operations
[Sun Jul 30 10:26:23 2023] e820: BIOS-provided physical RAM map:
[Sun Jul 30 10:26:23 2023] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
[Sun Jul 30 10:26:23 2023] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
[Sun Jul 30 10:26:23 2023] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
[Sun Jul 30 10:26:23 2023] BIOS-e820: [mem 0x0000000000100000-0x00000000bfedffff] usable
[Sun Jul 30 10:26:23 2023] BIOS-e820: [mem 0x00000000bfee0000-0x00000000bfefefff] ACPI data
[Sun Jul 30 10:26:23 2023] BIOS-e820: [mem 0x00000000bfeff000-0x00000000bfefffff] ACPI NVS

Everything that happened within a single minute has the same timestamp. If all you’re bothered about is the sequence of events, this is good enough. Also, note that you’re dumped back at the command prompt. This option doesn’t automatically invoke less.
一分钟内发生的所有事情都有相同的时间戳。 如果所关心的只是事件的顺序,那么这就足够了。

8.观察实时event

任何导致连接到计算机的硬件发生变化的情况都会导致消息发送到内核ring buffer。 更新或添加内核模块,将看到有关这些更改的ring buffer消息。 如果插入 USB 驱动器或连接或断开蓝牙设备,将在 dmesg 输出中看到消息。 即使虚拟硬件也会导致新消息出现在ring buffer中。 启动虚拟机,将看到新信息到达ring buffer。

sudo dmesg --follow

请注意,命令执行后不会返回到命令提示符。 当新消息出现时,它们会由 dmesg 显示在终端窗口的底部。
在这里插入图片描述

甚至挂载 CD-ROM 盘也被视为变化,因为已将 CD-ROM 盘的内容移植到目录树上。
在这里插入图片描述
要退出实时反馈,按Ctrl+C。

9.检索最后10条消息

sudo dmesg | last -10

10.搜索特定术语

将 dmesg 的输出通过管道传输到 grep 以搜索特定的字符串或模式。 这里我们使用 -i(忽略大小写)选项,以便忽略匹配字符串的大小写。 我们的结果将包括“usb”和“USB”以及任何其他小写和大写的组合。

sudo dmesg | grep -i usb

突出显示的搜索结果以大写和小写形式显示。
在这里插入图片描述
我们可以隔离包含对系统 sda 上第一个 SCSI 硬盘的引用的消息。 (实际上,sda 现在也用于第一个 SATA 硬盘驱动器和 USB 驱动器。)

[oracle@test ~]$ sudo dmesg | grep -i sda
[ 2.016997] sd 0:0:0:0: [sda] 83886080 512-byte logical blocks: (42.9 GB/40.0 GiB)
[ 2.017043] sd 0:0:0:0: [sda] Write Protect is off
[ 2.017045] sd 0:0:0:0: [sda] Mode Sense: 61 00 00 00
[ 2.017066] sd 0:0:0:0: [sda] Cache data unavailable
[ 2.017068] sd 0:0:0:0: [sda] Assuming drive cache: write through
[ 2.026601] sda: sda1 sda2 sda3
[ 2.027336] sd 0:0:0:0: [sda] Attached SCSI disk
[ 2.392710] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
[ 6.802833] EXT4-fs (sda2): re-mounted. Opts: (null)
[ 9.187060] Adding 8388604k swap on /dev/sda3. Priority:-2 extents:1 across:8388604k FS
[ 9.676498] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

要使 grep 一次搜索多个术语,请使用 -E(扩展正则表达式)选项。 必须在带引号的字符串内提供搜索词,并使用管道“|” 搜索词之间的分隔符:

sudo dmesg | grep -E "memory|tty|dma"

在这里插入图片描述

11.使用Log Levels

记录到内核ring buffer的每条消息都附加了一个级别。 级别代表消息中信息的重要性。 级别为:

emerg:系统无法使用。
alert:必须立即采取行动。
Crit:危急情况。
err:错误情况。
warn:警告情况。
notice:正常但重要的情况。
information:信息性的。
debug:调试级别消息。

We can make dmesg extract messages that match a particular level by using the -l (level) option and passing the name of the level as a command-line parameter. To see only “informational” level messages, use this command:
我们可以使用 -l(级别)选项并将级别名称作为命令行参数传递,从而使 dmesg 提取与特定级别匹配的消息。 要仅查看“information”级别的消息,使用以下命令:

sudo dmesg -l info

将两个或多个日志级别组合在一个命令中以检索多个日志级别的消息:

sudo dmesg -l debug,notice

12.使用Facility Categories

The Facility Categories
dmesg消息被分组为称为“facilities”的类别。facilities列表如下:

kern:内核消息。
user:用户级消息。
mail:邮件系统。
daemon:系统守护进程。
auth:安全/授权消息。
syslog:内部syslogd消息。
lpr:打印子系统。
news:网络新闻子系统。

We can ask dmesg to filter its output to only show messages in a specific facility. To do so, we must use the -f (facility) option:
我们可以要求 dmesg 过滤其输出,仅显示特定设施中的消息。 为此,我们必须使用 -f(facility)选项:

sudo dmesg -f daemon

如同我们对级别所做的那样,我们可以要求 dmesg 同时列出来自多个设施的消息:

sudo dmesg -f syslog, daemon

输出是系统日志和守护程序日志消息的混合。

13.Combining Facility and Level

The -x (decode) option makes dmesg show the facility and level as human-readable prefixes to each line.
-x(decode)选项使 dmesg 将facility和level显示为每行的人类可读前缀。

sudo dmesg -x

在这里插入图片描述
第一个突出显示的部分是来自“kernel”设施的消息,级别为“notice”。 第二个突出显示的部分是来自“kernel”设施的消息,级别为“info”。

14.结尾

简而言之,就是找错。
如果遇到某个硬件无法识别或运行不正常的问题,dmesg 可能会对该问题有所帮助。
使用 dmesg 从最高级别到每个较低级别查看消息,查找提及硬件项目或可能与问题有关的任何错误或警告。
使用 dmesg 搜索任何提及的适当设施,看看它们是否包含任何有用的信息。
通过 grep 管道 dmesg 并查找相关字符串或标识符,例如产品制造商或型号。
通过 grep 管道 dmesg 并查找“gpu”或“存储”等通用术语,或“失败”、“失败”或“无法”等术语。
使用 --follow 选项并实时观看 dmesg 消息。

相关文章:

如何在 Linux 上使用 dmesg 命令

文章目录 1. Overview2.ring buffer怎样工作?3.dmesg命令4.移除sudo需求5. 强制彩色输出6.使用人性化的时间戳7.使用dmesg的人性化可读时间戳8.观察实时event9.检索最后10条消息10.搜索特定术语11.使用Log Levels12.使用Facility Categories13.Combining Facility a…...

WPF的DataGrid设置标题头

要设置DataGrid标题头的分割线、背景色和前景色等属性,您可以使用DataGrid的样式和模板来自定义标题头的外观。下面是详细解释以及示例代码: 分割线设置: 您可以使用DataGrid.ColumnHeaderStyle样式中的BorderThickness和BorderBrush属性来设…...

【软考】UML中的图之通信图

目录 1. 说明2. 图示3. 特性4. 例题4.1 例题1 1. 说明 1.通信图强调收发消息的对象的结构组织2.早期版本叫做协作图3.通信图强调参加交互的对象和组织4.首先将参加交互的对象作为图的顶点,然后把连接这些对象的链表示为图的弧,最后用对象发送和接收的消…...

为什么ChatGPT预训练能非常好地捕捉语言的普遍特征和模式

ChatGPT能够非常好地捕捉语言的普遍特征和模式,主要得益于以下几个方面的原因: 大规模语料库:ChatGPT的预训练是在大规模文本语料库上进行的,这些语料库涵盖了来自互联网、书籍、文章、对话记录等多种来源的丰富数据。这种大规模的…...

如何安装ProtoBuf环境

1 🍑下载 ProtoBuf🍑 下载 ProtoBuf 前⼀定要安装依赖库:autoconf automake libtool curl make g unzip 如未安装,安装命令如下: Ubuntu ⽤⼾选择: sudo apt-get install autoconf automake libtool cur…...

C语言 vs Rust应该学习哪个?

C语言 vs Rust应该学习哪个? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!&am…...

IT廉连看——Uniapp——配置文件pages

IT廉连看——Uniapp——配置文件pages [IT廉连看] 本堂课主要为大家介绍pages.json这个配置文件 一、打开官网查看pages.json可以配置哪些属性。 下面边写边讲解 新建一个home页面理解一下这句话。 以下一些页面的通用配置 通用设置里我们可以对导航栏和状态栏进行一些设…...

服务器上部署WEb服务方法

部署Web服务在服务器上是一个比较复杂的过程。这不仅仅涉及到配置环境、选择软件和设置端口,更有众多其它因素需要考虑。以下是在服务器上部署WEb服务的步骤: 1. 选择服务器:根据项目规模和预期访问量,选择合适的服务器类型和配置…...

设计模式:模版模式

模板模式(Template Pattern)是一种行为型设计模式,它定义了一个操作中的算法骨架,将一些步骤的具体实现延迟到子类中。模板模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。 在模板模式中,将算法的…...

pikachu之特殊注入之搜索型注入、xx型注入、insert/update注入、delete注入、宽字节注入

一步一脚印!!! 补充:此处为什么不写http请求头注入,因为该注入类型只是换了注入点,语句其他根本没有什么变化 1.搜索型 先尝试输入常用payload: 1 or 11 #。 已经有回显 我们在查看提示 我们…...

docker构建hyperf环境

一,构建hyperf 镜像 官网git https://github.com/hyperf/hyperf-docker 使用dockerfile构建镜像 根据需要这里我使用8.1 swoole版本的镜像 在/home/hyperfdocker 目录中新建一个Dockerfile文件,将这个git上的Dockerfile内容复制粘贴进去 docker build…...

WPF常用mvvm开源框架介绍 vue的mvvm设计模式鼻祖

WPF(Windows Presentation Foundation)是一个用于构建桌面应用程序的.NET框架,它支持MVVM(Model-View-ViewModel)架构模式来分离UI逻辑和业务逻辑。以下是一些常用的WPF MVVM开源框架: Prism Prism是由微软…...

HTML <script>元素的10个属性

将javascrip插入HTML的主要方法是使用<script>元素&#xff0c;这个元素是网景公司&#xff08;Netscape&#xff09;创造出来的&#xff0c;script 元素所属类型因其用法而异。位于 head 元素中的 script 元素属于元数据元素&#xff0c;位于其他元素&#xff08;如 bod…...

NX二次开发:ListingWindow窗口的应用

一、概述 在NX二次开发的学习中&#xff0c;浏览博客时发现看到[社恐猫]和[王牌飞行员_里海]这两篇博客中写道有关信息窗口内容的打印和将窗口内容保存为txt,个人人为在二次开发项目很有必要&#xff0c;因此做以下记录。 ListingWindow信息窗口发送信息四种位置类型 设置Listi…...

设计模式-结构型模式-外观模式

外观模式&#xff08;Facade&#xff09;&#xff0c;为子系统中的一组接口提供一个一致的界面&#xff0c;此模式定义了一个高层接口&#xff0c;这个接口使得这一子系统更加容易使用。[DP] 首先&#xff0c;定义子系统的各个组件接口和具体实现类&#xff1a; // 子系统组件接…...

C++学习第四天(类与对象下)

1、构造函数的其他知识 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值 构造函数调用之后&#xff0c;对象中已经有了一个初始值&#xff0c;但是不能将其称为对对象中成员变量的初始化&#xff0c;构造函…...

【AI Agent系列】【MetaGPT多智能体学习】0. 环境准备 - 升级MetaGPT 0.7.2版本及遇到的坑

之前跟着《MetaGPT智能体开发入门课程》学了一些MetaGPT的知识和实践&#xff0c;主要关注在MetaGPT入门和单智能体部分&#xff08;系列文章附在文末&#xff0c;感兴趣的可以看下&#xff09;。现在新的教程来了&#xff0c;新教程主要关注多智能体部分。 本系列文章跟随《M…...

python自动化管理和zabbix监控网络设备(无线AC控制瘦ap配置部分)

目录 前言 拓扑 一、AC-SW1 二、Core-sw1 三、Core-sw2 四、汇聚层 五、AC1 六、SW1-6 七、DMZ区域 前言 具体原理和操作可以访问我的主页视频 白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 拓扑 一、AC-SW1 sys sysname AC-SW1 vlan batch 100 200 210 220 2…...

XSS中级漏洞(靶场)

目录 一、环境 二、正式开始闯关 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0D 0x0E ​ 0x0F 0x10 0x11 0x12 一、环境 在线环境&#xff08;gethub上面的&#xff09; alert(1) 二、正式开始闯关 0x01 源码&#xff1a; 思路&#xff1a;闭…...

etcd java 客户端jetcd库踩坑日志

问题 Q&#xff1a; EtcdException: Unable to resolve endpoints [http://0.0.0.0:2379/] A&#xff1a; 经过测试&#xff0c;endpoints最后的斜杠不能写&#xff0c;完整的endpoints是http://0.0.0.0:2379 Q&#xff1a; java.lang.NoSuchMethodError: io.netty.buffer.Po…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...