linux基本功系列之lsof命令实战

文章目录
- 前言
- 一. lsof命令介绍
- 二. 语法格式及常用选项
- 三. 参考案例
- 3.1 显示系统打开的文件
- 3.2 查找某个文件相关的进程
- 3.3 列出某个用户打开的文件信息
- 3.4 列出某个程序进程所打开的文件信息
- 3.5 查看某个进程号打开的文件
- 3.6 列出所有的网络连接
- 3.7 列出谁在使用某个端口
- 3.8 恢复误删除的文件
- 总结
前言
大家好,又见面了,我是沐风晓月,本文是专栏【linux基本功-基础命令实战】的第45篇文章。
专栏地址:[linux基本功-基础命令专栏] , 此专栏是沐风晓月对Linux常用命令的汇总,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
一. lsof命令介绍
lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP),是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
lsof 查看的文件可以是:
- 普通文件
- 目录
- 字符或块设备文件
- 共享库
- 管道、命名管道
- 符号链接
- 网络文件(如 NFS file、网络 socket,Unix 域名 socket)
- 其它类型的文件,等等
二. 语法格式及常用选项
常用的命令选项如下表:
| 参数 | 描述 |
|---|---|
| -a | 列出打开文件存在的进程 |
| -c | <进程名> 列出指定进程所打开的文件 |
| -g | 列出GID号进程详情 |
| -d | <文件号> 列出占用该文件号的进程 |
| +d | <目录> 列出目录下被打开的文件 |
| +D | <目录> 递归列出目录下被打开的文件 |
| -n | <目录> 列出使用NFS的文件 |
| -i | <条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip ) |
| -p | <进程号> 列出指定进程号所打开的文件 |
| -u | 列出UID号进程详情 |
| -h | 显示帮助信息 |
| -v | 显示版本信息 |
三. 参考案例
3.1 显示系统打开的文件
也就是查找谁在使用文件系统:
在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
[root@mufenggrow ~]# lsof |head -5
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,0 224 64 /
systemd 1 root rtd DIR 253,0 224 64 /
systemd 1 root txt REG 253,0 1616360 17335469 /usr/lib/systemd/systemd
systemd 1 root mem REG 253,0 20112 171185 /usr/lib64/libuuid.so.1.3.0
[root@mufenggrow ~]#
输出的内容,第一行的参数解释:
| 参数 | 描述 |
|---|---|
| COMMAND: | 进程的名称 |
| PID | 进程标识符 |
| USER | 进程所有者 |
| FD | 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 |
| TYPE | 文件类型,如DIR、REG等 |
| DEVICE | 指定磁盘的名称 |
| SIZE | 文件的大小 |
| NODE | 索引节点(文件在磁盘上的标识) |
| NAME | 打开文件的确切名称 |
关于FD列的介绍:
FD 列中的文件描述符cwd 值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改
txt 类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上面代码中显示的 /usr/lib/systemd/systemd程序
其他常用的参数如下表:
| 参数 | 描述 |
|---|---|
| cwd | 表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改 |
| txt | 该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序 |
| lnn | library references (AIX); |
| er | FD information error (see NAME column); |
| jld | jail directory (FreeBSD); |
| ltx | shared library text (code and data); |
| mem | memory-mapped file; |
| mmap | memory-mapped device; |
| pd | parent directory; |
| rtd | root directory; |
| tr | kernel trace file (OpenBSD); |
| 0 | 表示标准输出 |
| 1 | 表示标准输入 |
| 2 | 表示标准错误 |
一般在标准输出、标准错误、标准输入后还跟着文件状态模式:r、w、u等
(1)u:表示该文件被打开并处于读取/写入模式
(2)r:表示该文件被打开并处于只读模式
(3)w:表示该文件被打开并处于
(4)空格:表示该文件的状态模式为unknow,且没有锁定
(5)-:表示该文件的状态模式为unknow,且被锁定
关于Type 列的介绍:
| 缩写 | 含义 |
|---|---|
| DIR | 表示目录 |
| CHR | 表示字符类型 |
| BLK | 块设备类型 |
| UNIX UNIX 域套接字 | |
| FIFO | 先进先出 (FIFO) 队列 |
| IPv4 | 网际协议 (IP) 套接字 |
3.2 查找某个文件相关的进程
查找某个文件相关的进程,换句话说就是查看谁在使用某个文件
[root@mufenggrow ~]# lsof /bin/bash
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ksmtuned 6230 root txt REG 253,0 964608 50423603 /usr/bin/bash
bash 19925 root txt REG 253,0 964608 50423603 /usr/bin/bash
bash 20483 root txt REG 253,0 964608 50423603 /usr/bin/bash
bash 21114 root txt REG 253,0 964608 50423603 /usr/bin/bash
可以看到PID,进程号,和某个命令command
3.3 列出某个用户打开的文件信息
创建一个mufeng用户,然后使用lsof -u 进行查看,mufeng用户打开的文件信息
[root@mufenggrow ~]# useradd mufeng
[root@mufenggrow ~]# echo 123456 |passwd --stdin mufeng
更改用户 mufeng 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@mufenggrow ~]# su - mufeng
[mufeng@mufenggrow ~]$ vim a.txt
查看mufeng用户打开的文件信息:
[root@mufenggrow ~]# lsof -u mufeng
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 73251 mufeng cwd DIR 253,0 139 33788283 /home/mufeng
bash 73251 mufeng rtd DIR 253,0 224 64 /
bash 73251 mufeng txt REG 253,0 964608 50423603 /usr/bin/bash
如果我们创建好用户但是不登录:
[root@mufenggrow ~]# useradd mufenggrow
[root@mufenggrow ~]# lsof -u mufenggrow
可以看到如果不登录,查看不到任何信息。
如果不想显示某个用户打开的进程,可以使用^
lsof -u ^root 表示不查看root用户打开的进程,换句话说就是root用户打开的进程不显示。
3.4 列出某个程序进程所打开的文件信息
比如我们查看MySQL进程,使用-C 参数, -c 选项将会列出所有以mysql这个进程开头的程序的文件
[root@mufenggrow ~]# yum install mariadb -y
## 此时没有启动进程,可以发现未输出任何内容
[root@mufenggrow ~]# lsof -c mysql
#启动MySQL
[root@mufenggrow ~]# systemctl restart mariadb
[root@mufenggrow ~]# lsof -c mysql
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld_sa 73597 mysql cwd DIR 253,0 224 64 /
mysqld_sa 73597 mysql rtd DIR 253,0 224 64 /
mysqld_sa 73597 mysql txt REG 253,0 964608 50423603
如果想看多个进程打开的多个文件,可以加多个-c参数。
比如:
lsof -c mysql -c apache
3.5 查看某个进程号打开的文件
这里用到-p参数,查看进程号为1的进程号打开的文件
[root@mufenggrow ~]# lsof -p 1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,0 224 64 /
systemd 1 root rtd DIR 253,0 224 64 /
如果要查看多个进程号对应的文件:
lsof -p 1,2,3
3.6 列出所有的网络连接
在这里我们可以使用 -i 列出网络连接
-i tcp 表示列出所有tcp相关的网络连接信息
-i upd 表示列出所有UDP相关的网络连接信息
[root@mufenggrow ~]# lsof -i udp
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 87u IPv4 33667 0t0 UDP *:sunrpc
systemd 1 root 146u IPv6 33669 0t0 UDP *:sunrpc
rpcbind 6105 rpc 5u IPv4 33667 0t0 UDP *:sunrpc
rpcbind 6105 rpc 7u IPv6 33669 0t0 UDP *:sunrpc
rpcbind 6105 rpc 10u IPv4 34871 0t0 UDP *:rxe
rpcbind 6105 rpc 11u IPv6 34872 0t0 UDP *:rxe
avahi-dae 6158 avahi 12u IPv4 37772 0t0 UDP *:mdns
avahi-dae 6158 avahi 13u IPv4 37773 0t0 UDP *:58076
chronyd 6176 chrony 1u IPv4 38347 0t0 UDP localhost:323
chronyd 6176 chrony 2u IPv6 38348 0t0 UDP localhost:323
dnsmasq 7293 nobody 3u IPv4 46027 0t0 UDP *:bootps
dnsmasq 7293 nobody 5u IPv4 46030 0t0 UDP mufenggrow:domain
dhclient 21569 root 6u IPv4 93194 0t0 UDP *:bootpc
3.7 列出谁在使用某个端口
此时也是用 -i参数
[root@mufenggrow ~]# lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 73762 mysql 14u IPv4 169606 0t0 TCP *:mysql (LISTEN)
我们遇到端口冲突的时候,可以使用lsof查看端口是否被占用。
3.8 恢复误删除的文件
当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。
有时候管理错误也可能导致意外删除某些重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。
这时候可以尝试使用lsof来恢复:
使用lsof 恢复文件的原理:
当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。
这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。
在/proc 目录下,其中包含了反映内核和进程树的各种文件,/proc目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在磁盘中,当我们写入和读取信息的时候,实际是从内存中获取相关的信息。
我们来看看恢复过程,实验过程如下:
- 创建一个目录并创建一个文件
- 在另一个窗口打开这个文件,并保持一直打开的状态,比如使用vim命令
- 在第一个创建删掉文件
- 使用lsof进行恢复
# 创建文件
[root@mufenggrow ~]# mkdir test
[root@mufenggrow ~]# cd test/
# 拷贝一份文件过来
[root@mufenggrow test]# cp /etc/passwd ./#在另一个窗口使用vim打开文件
# [root@mufenggrow ~]# vim passwd
# 删除文件
[root@mufenggrow test]# rm -rf passwd
# 用lsof来查看当前是否有进程打开passwd文件
[root@mufenggrow test]# lsof |grep passwd
cupsd 6850 root 10r REG 253,0 2323 17951309 /etc/passwd+ (deleted)
vim 74174 root 4u REG 253,0 12288 33994260 /root/.passwd.swp# 这里我们发现PID6850 打开文件的文件描述符为10, 另外在passwd后面看到delete字样。
接下来我们打开文件描述符为10的文件:[root@mufenggrow test]# head -n 10 /proc/6850/fd/10
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@mufenggrow test]# ls
#通过上面的命令我们可以确认,这个描述符为10的文件就是我们要恢复的文件
使用重定向进行文件恢复
[root@mufenggrow test]# cat /proc/6850/fd/10 > passwd
# 查看是否执行成功[root@mufenggrow test]# cat passwd |head
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@mufenggrow test]#
我们通过上面的案例可以看到,已经恢复成功了,这里的前提就是,被删除的文件一定要有进程在使用。
总结
以上就是关于lsof命令的全部内容了,喜欢的小伙伴,一键三连哦。
✨原创不易,还希望各位大佬支持一下\textcolor{blue}{原创不易,还希望各位大佬支持一下}原创不易,还希望各位大佬支持一下
👍 点赞,你的认可是我创作的动力!\textcolor{green}{点赞,你的认可是我创作的动力!}点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!\textcolor{green}{收藏,你的青睐是我努力的方向!}收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!\textcolor{green}{评论,你的意见是我进步的财富!}评论,你的意见是我进步的财富!


相关文章:
linux基本功系列之lsof命令实战
文章目录前言一. lsof命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示系统打开的文件3.2 查找某个文件相关的进程3.3 列出某个用户打开的文件信息3.4 列出某个程序进程所打开的文件信息3.5 查看某个进程号打开的文件3.6 列出所有的网络连接3.7 列出谁在使用某个端口3.8 恢…...
基础篇:02-SpringCloud概述
1.SpringCloud诞生 基于前面章节,我们深知微服务已成为当前开发的主流技术栈,但是如dubbo、zookeeper、nacos、rocketmq、rabbitmq、springboot、redis、es这般众多技术都只解决了一个或一类问题,微服务并没有一个统一的解决方案。开发人员或…...
【软件测试】软件测试工作上95%会遇到的问题,你遇到多少?
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 1、测试负责人要进行…...
4.5.4 LinkedList
文章目录1.特点2.常用方法3.练习:LinkedList测试1.特点 链表,两端效率高,底层就是链表实现的 List接口的实现类,底层的数据结构为链表,内存空间是不连续的 元素有下标,有序允许存放重复的元素在数据量较大的情况下,查询慢&am…...
Python之FileNotFoundError: [Errno 2] No such file or directory问题处理
错误信息:FileNotFoundError: [Errno 2] No such file or directory: ../AutoFrame/temp/report.xlsx相对于当前文件夹的路径,其实就是你写的py文件所在的文件夹路径!python在对文件的操作时,需要特别注意文件地址的书写。文件的路…...
C语言中耳熟能详的printf与scanf
没有什么比时间更有说服力了,因为时间无需通知我们就可以改变一切了。---余华《活着》大家好,今天给大家分享的是C语言中的scanf与printf函数,一提起这两个函数,大家可能觉得这不就是打印和输入嘛?有什么可以说的&…...
【数据结构】复杂度讲解
目录 时间复杂度与空间复杂度:: 1.算法效率 2.时间复杂度 3.空间复杂度 4.常见时间复杂度以及复杂度OJ练习 时间复杂度与空间复杂度:: 什么是数据结构? 数据结构中是计算机存储,组织数据的方式,指相互之间存在一种或多种特定关…...
JAVA-线程池技术
目录 概念 什么是线程? 什么是线程池? 线程池出现背景 线程池原理图 JAVA提供线程池 线程池参数 如果本篇博客对您有一定的帮助,大家记得留言点赞收藏哦。 概念 什么是线程? 是操作系统能够进行运算调度的最小单位。&am…...
【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(算术生成算法)
文章目录一、accumulate二、fill学习目标: 掌握常用的算术生成算法 注意: 算术生成算法属于小型算法,使用时包含的头文件为 #include <numeric> 算法简介: accumulate // 计算容器元素累计总和 fill // 向容器中添加元…...
【C++】static成员
💙作者:阿润菜菜 📖专栏:C 目录 概念 特性 出个题 概念 声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量; 用static修饰的成员函数,称之为静态…...
Python Scrapy 爬虫简单教程
1. Scrapy install 准备知识 pip 包管理Python 安装XpathCssWindows安装 Scrapy $>- pip install scrapy Linux安装 Scrapy $>- apt-get install python-scrapy 2. Scrapy 项目创建 在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中&am…...
【DOCKER】容器概念基础
文章目录1.容器1.概念2.特点3.与虚拟机的对比2.docker1.概念2.命名空间3.核心概念3.命令1.镜像命令2.仓库命令1.容器 1.概念 1.不同的运行环境,底层架构是不同的,这就会导致测试环境运行好好的应用,到了生产环境就会出现bug(就像…...
第九层(16):STL终章——常用集合算法
文章目录前情回顾常用集合算法set_intersectionset_unionset_difference最后一座石碑倒下,爬塔结束一点废话🎉welcome🎉 ✒️博主介绍:一名大一的智能制造专业学生,在学习C/C的路上会越走越远,后面不定期更…...
一起学习用Verilog在FPGA上实现CNN----(六)SoftMax层设计
1 SoftMax层设计 1.1 softmax SoftMax函数的作用是输入归一化,计算各种类的概率,即计算0-9数字的概率,SoftMax层的原理图如图所示,输入和输出均为32位宽的10个分类,即32x10320 本项目softmax实现逻辑为: …...
pixhawk2.4.8-APM固件-MP地面站配置过程记录
目录一、硬件准备二、APM固件、MP地面站下载三、地面站配置1 刷固件2 机架选择3 加速度计校准4 指南针校准5 遥控器校准6 飞行模式7 紧急断电&无头模式8 基础参数设置9 电流计校准10 电调校准11 起飞前检查(每一项都非常重要)12 飞行经验四、遇到的问…...
【unity细节】关于资源商店(Package Maneger)无法下载资源问题的解决
👨💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity细节和bug ⭐关于资源商店为何下载不了的问题⭐ 文章目录⭐关于资源商店为何下载不了的问题…...
[Arxiv 2022] A Novel Plug-in Module for Fine-Grained Visual Classification
Contents MethodPlug-in ModuleLoss functionExperimentsReferencesMethod Plug-in Module Backbone:为了帮助模型抽取出不同尺度的特征,作者在 backbone 里加入了 FPNWeakly Supervised Selector:假设 backbone 的 i i...
RocketMQ Broker消息处理流程及部分源码解析
🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年2月10日 &#x…...
Java面试题:Java集合框架
文章目录一、Java集合框架二、Java集合特性三、各集合类的使用ArrayListLinkedListHashSetHashSet源码解析对源码进行总结HashSet可同步HashSet的使用HashMap四、Iterator迭代器五、遍历集合元素的若干方式参考文章:Hash详解参考文章:深入浅出学Java——…...
时间之间的比较与计算相差年、月、日、小时、分钟、毫秒、纳秒以及判断闰年--LocalDateTime
如何把String/Date转成LocalDateTime参考String、Date与LocalDate、LocalTime、LocalDateTime之间互转 String、Date、LocalDateTime、Calendar与时间戳之间互相转化参考String、Date、LocalDateTime、Calendar与时间戳之间互相转化 比较方法介绍 isBefore(ChronoLocalDateT…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
