前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux中的一些常用文件

Linux中的一些常用文件

作者头像
AsiaYe
发布2019-11-06 17:12:40
7130
发布2019-11-06 17:12:40
举报
文章被收录于专栏:DBA随笔
Linux中的一些常用文件

简介

这两天做资源自动化交付的项目,写的脚本比较多 ,在写脚本的过程中,遇到了很多Linux中的常用文件,这里列举一下,希望对大家能有所帮助吧。

今天主要讲述的是/proc文件夹下面的几个常用文件。在Linux系统中,系统调用是操作系统提供给应用程序使用操作系统服务的重要接口,但同时也正是通过系统调用机制,操作系统屏蔽了用户直接访问系统内核的可能性。幸运的是Linux提供了LKM机制可以使我们在内核空间工作,在LKM机制中一个重要的组成部分就是proc伪文件系统,它为用户提供了动态操作Linux内核信息的接口,是除系统调用之外另一个重要的Linux内核空间与用户空间交换数据的途径。

Q:

/proc/meminfo文件里面保存了什么东西

/proc/meminfo是一个接口,它可以帮助我们了解系统内存的使用状况,我们最常用的free操作,vmstate操作都是通过它来获取数据的,这也就是说/proc/meminfo文件中包含的信息比上面两个命令都多,下面我们罗列一下比较重要的一些来做说明:

代码语言:javascript
复制
[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命令的一些输出:

代码语言:javascript
复制
[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来获取网卡的网速及网络包的收发情况,这个文件中保存了网络适配器和统计信息,也就是说,当前走流量的网卡信息都会存储在这个文件中:

代码语言:javascript
复制
Inter-|                   Receive                                                |  Transmit
 face |bytes          packets      errs  drop fifo frame compressed multicast    |bytes          packets      errs drop fifo colls carrier compressed
   lo:                                                                                  
 eth0:                                                                             

针对这里面的一些参数,我们做简单说明即可:

bytes:接口发送或接受的数据的总字节数

packets:接口发送或接受的数据包总数

errs:由设备驱动程序检测到的发送或接受错误的总数

drop:设备驱动程序丢弃的数据包总数

fifo:FIFO缓冲区错误的数量

frame:分组帧错误的数量

compressed:设备驱动程序发送或者接受的压缩数据包

multicast:设备驱动程序发送或接收的多播帧数

上面这些都是些常规介绍,我本人应用这个文件里面的内容主要是为了过滤网卡信息。

Q:

/proc/cpuinfo cpu信息?

这个文件中包含了cpu相关的内容,因为文件内容比较多,这里就不一一展示了,就给出一些这个文件的常用信息获取方法:

代码语言:javascript
复制
# 总核数 = 物理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'
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档