简介
这两天做资源自动化交付的项目,写的脚本比较多 ,在写脚本的过程中,遇到了很多Linux中的常用文件,这里列举一下,希望对大家能有所帮助吧。
今天主要讲述的是/proc文件夹下面的几个常用文件。在Linux系统中,系统调用是操作系统提供给应用程序使用操作系统服务的重要接口,但同时也正是通过系统调用机制,操作系统屏蔽了用户直接访问系统内核的可能性。幸运的是Linux提供了LKM机制可以使我们在内核空间工作,在LKM机制中一个重要的组成部分就是proc伪文件系统,它为用户提供了动态操作Linux内核信息的接口,是除系统调用之外另一个重要的Linux内核空间与用户空间交换数据的途径。
Q:
/proc/meminfo文件里面保存了什么东西?
/proc/meminfo是一个接口,它可以帮助我们了解系统内存的使用状况,我们最常用的free操作,vmstate操作都是通过它来获取数据的,这也就是说/proc/meminfo文件中包含的信息比上面两个命令都多,下面我们罗列一下比较重要的一些来做说明:
[root@tk-dba-mysql proc]# cat /proc/meminfo MemTotal: kB MemFree: kB Buffers: kB Cached: kB SwapCached: kB Active: kB Inactive: kB Active(anon): kB Inactive(anon): kB Active(file): kB Inactive(file): kB Unevictable: kB Mlocked: kB SwapTotal: kB SwapFree: kB Dirty: kB Writeback: kB AnonPages: kB Mapped: kB Shmem: kB Slab: kB SReclaimable: kB SUnreclaim: kB KernelStack: kB PageTables: kB NFS_Unstable: kB Bounce: kB WritebackTmp: kB CommitLimit: kB Committed_AS: kB VmallocTotal: kB VmallocUsed: kB VmallocChunk: kB Hugepagesize: kB DirectMap4k: kB DirectMap2M: kB
先来简单对一些重要的参数做下介绍吧,:
MemTotal:所有可用的RAM大小
MemFree:被系统留着未使用的内存
Buffers:用来给文件做缓冲的内存大小
Cached:被高速缓存使用的内存大小
SwapCached:被高速缓存使用的交换空间的大小
Active/Inactive:活跃/不活跃使用的高速缓存页面大小
SwapTotal:交换空间的总大小
SwapFree:未被使用的交换空间的大小
看到这里,有没有发现加粗的指标有些面熟,是不是想起了我们最常用的free命令的一些输出:
[root@tk-dba-mysql proc]# free -mt
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
Total:
是的,这里的值就是通过在/proc/meminfo中的值经过换算得到的。
当然,还有其他一些信息在/proc/meminfo中,我们不在详细讲述,有兴趣的同学可以再研究研究,为什么到这里就截止了呢?在写脚本的过程中,经常会使用到当前的内存值,有时候觉得从free -mt中过滤比较麻烦,我们就使用cat /proc/meminfo|grep MemTotal的方法来进行过滤。
Q:
/proc/net/dev文件的内容?
我们可以利用proc/net/dev来获取网卡的网速及网络包的收发情况,这个文件中保存了网络适配器和统计信息,也就是说,当前走流量的网卡信息都会存储在这个文件中:
Inter-| Receive | Transmit face |bytes packets errs drop fifo compressed multicast |bytes packets errs drop fifo colls carrier compressed lo: eth0:
针对这里面的一些参数,我们做简单说明即可:
bytes:接口发送或接受的数据的总字节数
packets:接口发送或接受的数据包总数
errs:由设备驱动程序检测到的发送或接受错误的总数
drop:设备驱动程序丢弃的数据包总数
fifo:FIFO缓冲区错误的数量
:分组帧错误的数量
compressed:设备驱动程序发送或者接受的压缩数据包
multicast:设备驱动程序发送或接收的多播帧数
上面这些都是些常规介绍,我本人应用这个文件里面的内容主要是为了过滤网卡信息。
Q:
/proc/cpuinfo cpu信息?
这个文件中包含了cpu相关的内容,因为文件内容比较多,这里就不一一展示了,就给出一些这个文件的常用信息获取方法:
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的个数 cat /proc/cpuinfo| grep "processor"| wc -l #查看cpu型号 cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 每个物理CPU中逻辑CPU(可能是core, threads或both)的个数: # cat /proc/cpuinfo | grep 'siblings'
继续阅读与本文标签相同的文章
MySQL中的哈希索引
第12章 样式(三)
-
城市 | 800个地铁站数据透析的京沪白领图鉴:隐形土豪、无产中产阶级和猪猪女孩
2026-05-26栏目: 教程
-
柔宇科技完成E+轮融资,盈科资本独家投资
2026-05-26栏目: 教程
-
springboot 加载外部配置文件
2026-05-26栏目: 教程
-
一个线上的排行榜SQL问题
2026-05-26栏目: 教程
-
Linux中的NFS挂载问题
2026-05-26栏目: 教程
