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

Linux服务器常用巡检命令

在Linux服务器上进行常规巡检是确保服务器稳定性和安全性的重要措施之一。以下是一些常用的巡检命令和技巧:

1. 查看系统信息

1.1 系统信息显示

命令:uname -a  ​​​​

[root@linux100 ~]# uname -a
Linux linux100 4.15.0-70-generic #79-Ubuntu SMP Tue Nov 12 10:36:11 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

打印出来的信息说明:

字段对应打印的值说明

操作系统类型

- Operating System Type

Linux显示操作系统类型,如Linux、Unix等。

主机名

- Hostname

linux100显示当前主机的名称

内核版本

- Kernel Version

4.15.0-70-generic显示当前系统正在使用的内核版本号

操作系统发行版版本号

- OS Distribution Version

#79显示操作系统发行版的版本号。

操作系统发行版

- OS Distribution

Ubuntu显示操作系统的发行版信息,如Ubuntu、CentOS等。

操作系统架构

- Architecture

x86_64显示操作系统的架构,如x86_64、i386等

1.2 显示操作系统发行版信息

命令:cat /etc/*release*

1.3 通过LSB工具查询Linux发行版信息

lsb_release是一个Linux Standard Base(LSB)的工具,用于显示Linux发行版的信息。它通常用于查询和显示Linux发行版的版本号、发行代号、描述等信息。

# CentOS安装lsb_release包
[root@linux100 ~]# sudo yum install redhat-lsb# 查看Linux版本
[root@linux100 ~]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.9.2009 (Core)
Release:        7.9.2009
Codename:       Core

1.4 通过hostnamectl来查询Linux系统信息

hostnamectl是一个用于管理系统主机名(hostname)的命令行工具,它通常在Linux系统中提供。它可以用来查询、设置和管理系统的主机名及其相关的信息。

[root@linux100 ~]# hostnamectlStatic hostname: linux100Icon name: computer-vmChassis: vmMachine ID: fb9d8715fff144aca93accad42cec460Boot ID: 49ec505cca3d4052a6115b36a670e7e6Virtualization: vmwareOperating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-1160.25.1.el7.x86_64Architecture: x86-64

1.5 显示系统运行时间、负载情况

命令:uptime

打印出来的信息说明:

字段对应打印的值说明
当前时间10:52:57显示当前系统时间。
系统运行时间up 7 min显示系统自上次启动以来的运行时间。通常以天、小时、分钟的格式显示。up 7 min表示运行了7分钟。
当前登录用户数1 user当前登录系统的用户个数,1user表示1人
平均负载load average: 0.05, 0.07, 0.05显示系统在过去1分钟、5分钟、51分钟内的平均负载。负载是指系统处于运行和等待状态的进程数目的平均值。值显示该系统处于轻负载状态。

1.6 列出已加载的内核模块

命令:lsmod

2.资源利用情况

2.1 实时查看系统资源使用情况

命令:top

打印出来的信息说明:

字段对应打印的值说明

第一行:

总体信息

top

当前时间top - 11:56:43显示当前系统时间。
系统运行时间up  1:10显示系统自上次启动以来的运行时间。通常以天、小时、分钟的格式显示。up  1:10表示运行了1小时10分钟。
当前登录用户数1 user当前登录系统的用户个数,1user表示1人
平均负载load average: 0.00, 0.01, 0.05显示系统在过去1分钟、5分钟、51分钟内的平均负载。负载值反映了系统在单位时间内处于可运行状态的平均进程数。

第二行:

任务统计

Tasks

系统中各类任务数量的统计信息Tasks: 108 total,   1 running, 107 sleeping,   0 stopped,   0 zombie该系统总共有108个任务,其中有1个运行中的任务,107个睡眠中的任务,0个已停止的任务,0个僵尸进程。

第三行:

CPU使用情况

%Cpu(s)

us0.3 us用户空间占用CPU的百分比
sy0.3 sy内核空间占用CPU的百分比
ni0.0 ni优先级较低的进程用户态占用CPU的百分比
id99.3 idCPU空闲的百分比
wa0.0 waCPU等待I/O完成的百分比
hi0.0 hi硬中断占用CPU的百分比
si 0.0 si软中断占用CPU的百分比
st 0.0 st被虚拟机偷取的时间的百分比

第四行:

内存使用情况

KiB Mem

总内存995664 total系统总可用的物理内存量
空闲内存491532 free当前已经被使用的内存量
已用内存175596 used当前可用但未被使用的内存量
缓存/缓冲区328536 buff/cache被系统用作文件缓存和缓冲区的内存量

第五行:

系统交换空间使用情况

KiB Swap

总交换空间2097148 total系统总可用的交换空间大小
空闲交换空间2097148 free   当前可用但未被使用的交换空间大小
已用交换空间 0 used当前已经被使用的交换空间大小
列表字段说明PID668进程ID
USERroot      用户
PR20优先级(Priority),表示进程的静态优先级。Linux进程的优先级范围是-20到19,数值越小,优先级越高。
NI0优先级值(Nice Value),表示进程的动态优先级。通过renice命令可以调整进程的优先级值,数值越小,优先级越高。
VIRT273192虚拟内存(Virtual Memory),表示进程当前使用的虚拟内存大小,以千字节(KB)为单位。虚拟内存包括进程使用的物理内存(RES)和交换空间。
RES4868物理内存(Resident Memory),表示进程当前使用的物理内存大小,以千字节(KB)为单位。物理内存是指进程实际占用的内存空间。
SHR3736共享内存(Shared Memory),表示进程使用的共享内存的大小,以千字节(KB)为单位。共享内存是多个进程之间共享的内存区域,通常用于进程之间的通信。
SS当前进程状态(State),常见的状态包括:R(运行)、S(睡眠)、D(不可中断睡眠)、Z(僵尸)、T(停止)、<(高优先级)、N(低优先级)、+(位于前台)、L(锁住页)、s(会话领导者)、l(多线程)。
%CPU0.3  CPU使用率
%MEM0.5  内存使用率
TIME+0:06.98运行时间
COMMANDvmtoolsd进程名称

具体查看参数:

  • 第一行load average(CPU负载):三个参数分别指前1分钟、前5分钟、前15分钟的负载,数值越高负载越高,对比数值在增加的话则表明CPU负载越来越高。
  • 第三行%Cpu(s):看id的数值>20%则表示CPU运行流畅,<20%则表示CPU负载过重。还有us过高就是用户进出优化,sy过高则需要提高服务器性能,wa过高就要关注磁盘io了。
  • 按shift+p或者大写的P可以将cpu占用情况由大到小排列出来,找到占用cpu最大的那个线程,即可造成CPU过大的线程。

 2.2 查看运行内存使用情况

命令:

free -g(单位GB)

free -m(单位MB)

打印出来的信息说明:

字段说明
total内存总大小
used使用的内存
free除了 buff/cache 剩余的内存
Shared共享内存
Buff/cact缓冲、缓存区内存数
available真实剩余的可用内存数

2.3 查看磁盘空间使用情况 

命令:df -h


查看发现根挂载点使用率100%,明明清理了大文件,但还是使用率100%,这就有可能是大量进程在占用内存使用率。

解决办法:

通过执行命令lsof -n |grep deleted,查看已经删除的文件,空间没有释放,kill掉pid。

扩展:

# 检查当前目录下,目录层级深度为1,空间占用情况。
du -h -x --max-depth=1

2.4 查看磁盘IO 

常用命令格式:  iostat [参数] [时间] [次数]

例如:iostat -d -k -x 1 10

命令参数说明如下:

命令中间的参数参数说明
-c显示CPU使用情况
-d显示磁盘使用情况
-k以K为单位显示
-m以M为单位显示
-N显示磁盘阵列(LVM) 信息
-n显示NFS使用情况
-p可以报告出每块磁盘的每个分区的使用情况
-t显示终端和CPU的信息
-x显示详细信息
[user1@Test_Server ~]$ iostat -x
Linux 3.10.0-693.2.2.el7.x86_64 (jellythink)    01/05/2019      _x86_64_        (1 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle1.83    0.00    0.31    0.09    0.00   97.77Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.03     0.78    0.24    1.38    12.64    20.67    41.01     0.02   10.98   55.50    3.17   0.71   0.12

打印出来的信息说明:

字段对应的值说明

avg-cpu

显示CPU的平均使用情况

%user  1.83用户进程占用CPU的百分比。这包括用户应用程序和用户级别的进程。
%nice0.00优先级较高的用户进程占用CPU的百分比。这些进程的优先级被提升了。
%system0.31 系统进程占用CPU的百分比。这包括内核级别的进程。
%iowait0.09等待I/O操作完成占用CPU的百分比。如果CPU大部分时间都在等待I/O操作完成,这个值会比较高。
%steal  0.00被虚拟化环境中其他虚拟机“偷走”的CPU时间的百分比。这个值主要用于虚拟化环境。
%idle97.77CPU空闲时间的百分比。这是CPU未被使用的时间
某个设备在系统的IO性能和负载情况Devicevda          设备名称,表示正在监视的磁盘或者其他IO设备的名称。
rrqm/s  0.03    每秒向该设备发出的读请求并在请求队列中排队的请求数(合并请求)
wrqm/s    0.78  每秒向该设备发出的写请求并在请求队列中排队的请求数(合并请求)
r/s    0.24  每秒从设备读取的块数(读取速率)
w/s    1.38  每秒向设备写入的块数(写入速率)
rkB/s    12.64  每秒从设备读取的数据量(以MB为单位)
wkB/s20.67  每秒向设备写入的数据量(以MB为单位)
avgrq-sz41.01 平均每个IO请求的大小(块大小)
avgqu-sz  0.02  平均IO请求在设备队列中的长度
await10.98  平均IO请求的等待时间,包括排队时间和服务时间
r_await55.50    平均读取IO请求的等待时间
w_await  3.17  平均写入IO请求的等待时间
svctm  0.71  平均IO请求的服务时间
%util0.12设备的利用率,即设备处于活动状态的时间占总时间的百分比

可通过观察一下字段的数值来了解系统的CPU负载情况:

  • 如果%user%system的值比较高,说明系统主要受到用户进程和系统进程的影响;
  • 如果%iowait的值较高,说明系统大部分时间都在等待I/O操作完成;
  • 如果%idle的值接近零,说明系统的CPU资源被充分利用,而如果%idle的值较高,则说明系统CPU有较多空闲时间。
  • 从%util可知,该设备在一秒中有百分之几的时间用于IO操作。

2.5 显示当前系统网络连接和网络监听情况 

命令:netstat -tulnp

打印出来的信息说明:

字段说明
Proto显示协议类型,如TCP或UDP
Recv-Q表示接收队列中的未读取字节数
Send-Q表示发送队列中的未发送字节数。
Local Address表示本地地址和端口号,即服务器正在监听的地址和端口。
Foreign Address表示远程地址和端口号,即与本地地址建立的连接的远程主机地址和端口。
State表示连接状态,如ESTABLISHED(已建立)、LISTEN(监听)、TIME_WAIT(等待关闭)等。
PID/Program name表示与连接或监听端口相关联的进程的PID和程序名称

由上面信息可知:

  • 是否建立连接:通过State可知服务器是否与客户端建立了连接;
  • 监听端口:通过Local Address列中,可以找到正在监听的端口号以及关联的IP地址,这些是服务器正在监听的端口
  • 进程关联:通过PID/Program name列,可以查看与网络连接或监听端口相关联的进程的PID和程序名称,从而找到哪些进程在使用这些网络资源。

2.6 显示当前系统上运行的进程

命令:ps aux

打印出来的信息说明:

字段说明
USER

进程的用户名,表示该进程是由哪个用户启动的

PID

进程ID,唯一标识系统中的每个进程

%CPU

CPU使用率,表示进程占用CPU的百分比

%MEM

内存使用率,表示进程占用内存的百分比

VSZ

虚拟内存大小(Virtual Size),表示进程虚拟内存的大小,以KB为单位

RSS

常驻内存集(Resident Set Size),表示进程实际使用的物理内存大小,以KB为单位

TTY

控制终端,表示进程关联的控制终端

STAT

进程状态,包括运行状态(R)、睡眠状态(S)、僵尸状态(Z)等

START

进程启动时间,表示进程启动的时间点

TIME

CPU时间,表示进程累计占用CPU的时间

COMMAND进程的命令行,表示启动进程时使用的命令和参数

扩展:

1)只显示包含指定进程名的行:ps aux | grep <进程名>

2)ps -ef 和 ps aux 两者都可用于列出系统的所有进程信息,但ps aux更适合快速查看当前系统中的进程情况。

3. 查看日志

3.1 通过journalctl命令查看系统日志

命令:journalctl

3.2 通过tail查看系统日志

# 查看系统日志的最后100行

tail -n [行数] [日志文件]

4. 服务状态

4.1 查看指定服务的状态

命令:systemctl status <service>

比如查看防火墙的状态:

4.2 查看已启用的服务

命令:systemctl list-unit-files --state=enabled

5. 网络状态

5.1 显示网络接口信息

命令:ifconfigip addr

5.2 测试网络连通性

命令格式:ping <IP地址或域名>

如果有类似以上的输出,则网络通畅了。

字段说明
icmp_seq数据包的序列号,每个数据包都有一个唯一的序列号,以便于识别
ttl数据包的生存时间(Time to Live),也称为跳数。它指示了数据包在网络中可以传递的最大路由器跳数。如果ttl值超过0而数据包还未到达目标,那么数据包会被丢弃
time往返时间(Round-Trip Time,RTT),表示从发送数据包到收到回应数据包所花费的时间,单位是毫秒(ms)

5.3 跟踪数据包的路由路径

命令格式:traceroute <IP地址或域名>

上面示例中,显示了从本地主机到目标主机(192.168.243.102)经过的1个路由器或中间节点的信息,包括它们的IP地址(192.168.243.102)、主机名(linux102)、以及数据包往返时间RTT(0.161 ms  0.132 ms  0.097 ms)。

5.4 查看网络IO

命令:nload

nload 默认分为上下两块:
上半部分:Incoming,是进入网卡的流量;
下半部分:Outgoing,是从这块网卡出去的流量。

参数详情表:

参数描述
Curr当前流量
Avg平均流量
Min最小流量
Max最大流量
Ttl总和流量

Curr当前网速 ,MAX 最大网速。当 curr 接近Max 时为负荷比较高的状态

6. 检查安全性

6.1  查看当前开放的网络连接,检查是否有异常连接

命令 ss -tulwn

打印出来的信息说明:

字段说明
Netid

显示网络标识符,表示套接字类型。常见的Netid值有:

  • tcp:表示TCP协议,用于传输可靠的、面向连接的数据流。
  • udp:表示UDP协议,用于传输不可靠的、面向数据报的数据。
  • raw:表示原始套接字(Raw Socket),允许应用程序直接访问网络层的数据包。
  • icmp:表示ICMP协议,用于在IP网络上发送控制消息。
  • udplite:表示UDP Lite协议,类似于UDP,但提供了部分数据包校验和的功能。
State

显示套接字的状态。常见的状态包括

LISTEN(正在监听传入连接)、

ESTAB(套接字已建立连接)、

CLOSED(套接字已关闭)、

TIME-WAIT(等待关闭的连接的套接字)等

Recv-Q接收队列中的字节数
Send-Q发送队列中的字节数
Local Address:Port本地地址和端口号
Peer Address远程地址和端口号

7.其他

7.1 查看Oracle数据库资源使用情况

根据以下sql来查询表空间使用情况:

SELECT a.tablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
(total - free) "表空间使用大小",
total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spaceGROUP BY tablespace_name
) a,(SELECT tablespace_name, SUM(bytes) totalFROM dba_data_filesGROUP BY tablespace_name
) b
WHERE a.tablespace_name = b.tablespace_name;

如果表空间的使用率超过了80%(自定义预警值)的时候,则需要通过清理某些表数据来释放空间,或进行表空间扩展。扩展表空间的操作流程如下:

查看数据库资源,达到预警比例,则需要扩展Oracle数据库表空间icon-default.png?t=N7T8https://blog.csdn.net/qq_39512532/article/details/131936579

相关文章:

Linux服务器常用巡检命令

在Linux服务器上进行常规巡检是确保服务器稳定性和安全性的重要措施之一。以下是一些常用的巡检命令和技巧&#xff1a; 1. 查看系统信息 1.1 系统信息显示 命令&#xff1a;uname -a ​​​​ [rootlinux100 ~]# uname -a Linux linux100 4.15.0-70-generic #79-Ubuntu SMP…...

VSCode 配置 CMake

VSCode 配置 C/C 环境的详细过程可参考&#xff1a;VSCode 配置 C/C 环境 1 配置C/C编译环境 如果是 Windows 环境&#xff0c;需要安装 MingW。 方案一 可以去官网(https://sourceforge.net/projects/mingw-w64/)下载安装包。 注意安装路径不要出现中文。 打开 windows she…...

​《MATLAB科研绘图与学术图表绘制从入门到精通》示例:绘制德国每日风能和太阳能产量3D线图

在MATLAB中&#xff0c;要绘制3D线图&#xff0c;可以使用 plot3 函数。 在《MATLAB科研绘图与学术图表绘制从入门到精通》书中通过绘制德国每日风能和太阳能产量3D线图解释了如何在MATLAB中绘制3D线图。 购书地址&#xff1a;https://item.jd.com/14102657.html...

【信息系统项目管理师知识点速记】质量管理:控制质量

控制质量是为了评估绩效,确保项目输出完整、正确且满足客户期望,而监督和记录质量管理活动执行结果的过程。控制质量过程需要在整个项目期间开展,其目的是测量产品或服务的完整性、合规性和适用性,以确保项目达到主要干系人的质量要求。 12.5.1 输入 项目管理计划 质量管理…...

【云原生】Pod 的生命周期(一)

【云原生】Pod 的生命周期&#xff08;一&#xff09;【云原生】Pod 的生命周期&#xff08;二&#xff09; Pod 的生命周期&#xff08;一&#xff09; 1.Pod 生命期2.Pod 阶段3.容器状态3.1 Waiting &#xff08;等待&#xff09;3.2 Running&#xff08;运行中&#xff09;3…...

Golang | Leetcode Golang题解之第71题简化路径

题目&#xff1a; 题解&#xff1a; func simplifyPath(path string) string {stack : []string{}for _, name : range strings.Split(path, "/") {if name ".." {if len(stack) > 0 {stack stack[:len(stack)-1]}} else if name ! "" &am…...

Unreal游戏GPU性能优化检测模式全新上线

UWA已经在去年推出了针对于Unity项目的GPU性能优化工具&#xff0c;通过对GPU渲染性能、带宽性能以及各种下探指标&#xff0c;帮助Unity项目研发团队定位由GPU导致的发热耗电问题。这个需求在Unreal团队中也极为强烈&#xff0c;因此UWA将该功能移植到针对Unreal项目的GOT Onl…...

设计网页用什么软件

在设计网页时&#xff0c;可以使用多种软件来完成不同的任务。以下是一些常用的网页设计软件&#xff0c;以及它们的特点和用途。 1. Adobe Photoshop&#xff1a; Adobe Photoshop 是一款功能强大的图像编辑软件。在网页设计中&#xff0c;它常用于创建和编辑网页所需的图像、…...

⑪ - 测试工程师通识指南

📖 该文隶属 程序员:职场关键角色通识宝典✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝典🏅...

RabbitMQ知识点总结和复习

之前项目中用到RabbitMQ的场景主要是订单信息的传递&#xff0c;还有就是利用RabbitMQ的死信队列属性设置&#xff0c;实现延迟队列效果&#xff0c;实现超时支付取消功能&#xff0c;以及在两个不同项目中传递数据等场景。 最近几年的工作中都是一直用的RabbitMQ&#xff0c;…...

ContEA阅读笔记

Facing Changes: Continual Entity Alignment for Growing Knowledge Graphs 面对变化&#xff1a;不断增长的知识图谱的持续实体对齐 Abstract 实体对齐是知识图谱(KG)集成中一项基本且重要的技术。多年来&#xff0c;实体对齐的研究一直基于知识图谱是静态的假设&#xff…...

使用nvm切换nodejs版本

查看可以安装的版本&#xff1a; 使用nvm list显示已安装的nodejs版本&#xff1a; 选择一个版本下载&#xff1a; 切换对应的版本&#xff1a;...

机器学习_KNN算法

机器学习_KNN算法 K-近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;算法是一种基本的机器学习分类和回归算法 其核心思想是&#xff1a;如果一个样本在特征空间中的k个最相似&#xff08;即特征空间中最邻近&#xff09;的样本中的大多数属于某一个类别…...

学QT的第一天~

#include "mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { //窗口相关设置// this->resize(427,330); this->setFixedSize(427,330); //设置图标 this->setWindowIcon(QIcon("C:\\Users\\Admin\\Desktop\\pictrue\\dahz.jpg&q…...

《QT实用小工具·四十九》QT开发的轮播图

1、概述 源码放在文章末尾 该项目实现了界面轮播图的效果&#xff0c;包含如下特点&#xff1a; 左右轮播 鼠标悬浮切换&#xff0c;无需点击 自动定时轮播 自动裁剪和缩放不同尺寸图片 任意添加、插入、删除 单击事件&#xff0c;支持索引和自定义文本 界面美观&#xff0c;圆…...

uniapp 自定义 App启动图

由于uniapp默认的启动界面太过普通 所以需要自定义个启动图 普通的图片不可以过不了苹果的审核 所以使用storyboard启动图 生成 storyboard 的网站&#xff1a;初雪云-提供一站式App上传发布解决方案...

39-1 Web应用防火墙 - WAF应用程序层绕过

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、双重URL编码绕过 什么是URL编码 URL编码是一种将特殊字符转为%加上其ASCII值的方式,以确保在URL中传输时不会被误解或导致错误。例如,字母"s"的URL编码是"…...

【1】STM32·FreeRTOS·新建工程模板【一步到位】

目录 一、获取FreeRTOS源码 二、FreeRTOS源码简介 2.1、FreeRTOS源码文件内容 2.2、FreeRTOS内核 2.3、Source文件夹 2.4、portable文件夹 三、FreeRTOS手把手移植 3.1、FreeRTOS移植准备 3.2、FreeRTOS移植步骤 3.2.1、将 FreeRTOS 源码添加至基础工程、头文件路径等…...

linux下sd卡的备份与还原

在Ubuntu上制作SD卡备份镜像&#xff0c;你可以使用dd命令。以下是一个基本的步骤和示例代码&#xff1a; 插入SD卡到电脑。确定SD卡设备路径&#xff0c;使用lsblk或sudo fdisk -l命令。确定备份镜像文件的路径。使用dd命令制作备份。 示例代码&#xff1a; bash# 查看连接的…...

Spring Boot项目中集成Logback作为日志框架-笔记

在Spring Boot项目中集成Logback作为日志框架是一个标准做法&#xff0c;因为Spring Boot默认就使用Logback作为日志系统。以下是集成Logback的步骤&#xff1a; 1. 默认集成 Spring Boot会自动配置Logback&#xff0c;所以通常情况下&#xff0c;你不需要添加任何额外的依赖或…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...