Linux内核-proc虚拟文件系统

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们的Linux进阶部分,到目前为止,已经讲过:硬件,日常运维,基础软件,日志,进阶命令,防火墙,Shell编程,以及本章将要讲解的内核相关内容,和最后一章Linux系统。

让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解:

Linux内核-什么是内核

Linux内核-内核模块&参数

Linux内核-proc文件系统(本章节)

Linux内核-sys文件系统

Linux内核-tmpfs文件系统

我们上一小节里面修改内核参数的时候,还有在Linux入门-目录介绍的时候也说过/proc是虚拟目录。今天我们就来介绍下这个目录。

在 Linux 系统中,"/proc" 目录是一个虚拟文件系统,它提供了关于系统运行状态和进程信息的动态视图。以下是对 "/proc" 目录的介绍:

一、主要特点

动态性

  • "/proc" 目录中的内容不是存储在磁盘上的静态文件,而是由内核在运行时动态生成的。这意味着当系统状态发生变化时,"/proc" 中的信息也会相应地更新。

  • 例如,当一个进程启动或结束时,"/proc" 中关于进程的信息会立即反映出这种变化。

虚拟性

  • 它并不占用实际的磁盘空间,而是通过内核的机制来呈现系统的各种信息。

  • 用户和程序可以通过读取 "/proc" 中的文件来获取系统的状态信息,就像读取普通文件一样,但实际上这些文件并不是真正的磁盘文件。

二、目录结构及内容

关于系统信息的文件

  • 文件"/proc/cpuinfo":包含有关系统 CPU 的详细信息,如处理器型号、频率、缓存大小等。

  • 文件"/proc/meminfo":提供系统内存使用情况的信息,包括总内存、可用内存、已用内存等。

  • 文件"/proc/version":显示内核版本信息。

  • 文件"/proc/mounts":显示当前系统的挂载信息,尤其当作为nfs客户端如果服务端挂了以后,可以通过它快速定位。

  • 文件"/proc/ modules":显示的就是当前加载的内核模块,等于lsmod显示的模块内容。

  • 目录"/proc/sys":这个目录下的文件可以用来调整内核参数,影响系统的行为和性能。其实就是上一小节的内核参数目录。

  • 当然其实这个目录下还有很多内容,包括内存,网络,磁盘等内容。我们平时使用的top等命令很多数据其实就是来源于/proc。

  1. 关于进程的信息,除一些固定的目录和文件,里面还有很多以数字命名的目录,这里的每个目录都代表了一个进程,每个进程也就会一个对应的pid目录名字。
  • "/proc/[pid]/cmdline":显示启动该进程的命令行参数。

  • "/proc/[pid]/environ":列出进程的环境变量。

  • "/proc/[pid]/status":包含进程的状态信息,如进程的所有者、内存使用情况、进程状态等。

  • "/proc/[pid]":每个正在运行的进程在 "/proc" 下都有一个对应的以进程 ID(PID)命名的目录。

  • 例如,"/proc/1234" 代表 PID 为 1234 的进程的信息目录。

  • "/proc/[pid]/fd":代表该进程打开的文件。

可以看到mysql进程的目录,可以看到它打开的日志文件,数据库文件等,和前面讲的lsof命令打开文件有异曲同工之妙。这里还有很多红色显示为deleted的文件。我们在讲Linux进阶命令-lsof命令的时候说过,如果文件被删除;这个文件如果正在被其他程序打开,文件是不会真删除的。从而导致删除文件未释放空间。基于该情况,我们设计了2个课题:

bash 复制代码
#恢复被删除的文件
cp 3 /tmp/cloud-init.log

#不重启服务释放被删除的文
> 3

总结

1./proc是运行在内存里面的文件系统,里面的数据重启以后会丢失

2./proc文件系统是没有inode的,所以无法通过mkdir vi 等命令进行操作,可以通过重定向方式进行修改。

相关推荐
可可嘻嘻大老虎4 小时前
nginx无法访问后端服务问题
运维·nginx
JiMoKuangXiangQu4 小时前
ARM64 进程虚拟地址空间布局
linux·arm64 虚拟地址布局
阳光九叶草LXGZXJ5 小时前
达梦数据库-学习-47-DmDrs控制台命令(LSN、启停、装载)
linux·运维·数据库·sql·学习
无忧智库5 小时前
某市“十五五“地下综合管廊智能化运维管理平台建设全案解析:从数字孪生到信创适配的深度实践(WORD)
运维·智慧城市
春日见5 小时前
如何避免代码冲突,拉取分支
linux·人工智能·算法·机器学习·自动驾驶
珠海西格5 小时前
“主动预防” vs “事后补救”:分布式光伏防逆流技术的代际革命,西格电力给出标准答案
大数据·运维·服务器·分布式·云计算·能源
无垠的广袤5 小时前
【VisionFive 2 Lite 单板计算机】边缘AI视觉应用部署:缺陷检测
linux·人工智能·python·opencv·开发板
阿波罗尼亚6 小时前
Kubectl 命令记录
linux·运维·服务器
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.6 小时前
Keepalived单播模式配置与实战指南
linux·服务器·负载均衡
IDC02_FEIYA6 小时前
Linux文件搜索命令有哪些?Linux常用命令之文件搜索命令find详解
linux·运维·服务器