翼度科技»论坛 云主机 LINUX 查看内容

Linux /proc和/sys

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
在 Linux 系统中,/proc和/sys都是特殊的文件系统,数据内容是存放在内存中,这两个目录文件中的内容由内核动态生成,查看这个文件中的内容,实际上就是查询内核的某些状态或信息。
可以将这两个目录文件理解为虚拟的目录,即在硬盘上不存在。
/proc 文件系统

proc 是process(进程)的缩写,这个目录文件里面存放的是进程的相关信息
信息查看

查看进程信息

在/proc 目录下每个进程都有一个以其PID命名的目录,其中包含该进程的信息
  1. /proc/pid
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023211129296-274017498.png[/img]
例如:
查看指定进程的线程数
  1. ls /proc/PID/task | wc -l
复制代码
说明: 下查看线程数量时,通常你会看到所有的线程,包括主线程。所以,实际上你看到的线程数是正确的,因为进程本身的主线程也算作一个线程

[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023212004696-203589341.png[/img]

查看cpu信息

通过/proc目录下的cpuinfo,可以查看CPU信息。
  1. cat /proc/cpuinfo
复制代码
内存信息查看

通过/proc目录下的meminfo两个文件可以查看cpu和内存的信息
  1. cat /proc/meminfo
复制代码
查看当前系统的挂载点
  1. cat /proc/mounts
复制代码
查看硬盘分区信息
  1. cat /proc/partitions
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023212127459-645826711.png[/img]
修改内核参数

网络参数修改

修改网络参数,是修改 /proc/sys/net 目录 中的相关文件;
IPv4转发(路由功能)
  1. # 1:开启转发 0:不开启(默认)
  2. ipv4/ip_forward
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023212209610-1845329388.png[/img]
是否响应 ping
  1. # 1:不会收到任何响应   0:正常响应
  2. ipv4/icmp_echo_ignore_all
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023212243038-749063598.png[/img]
SYN洪水攻击防范
  1. ipv4/tcp_syncookies
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023212259370-643508358.png[/img]
修改内存参数

修改内存的相关参数,是修改 /proc/sys/vm 目录 中的相关文件;
使用swap分区的倾向性
  1. # 默认值是60
  2. swappiness
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023212320497-1064868287.png[/img]
/sys 文件系统

信息查看

查看系统已加载内核模块

每个已加载的模块在 /sys/module 下都有一个对应的目录,其名称与模块名称相同
  1. /sys/module/mod_name
复制代码
例如:查看某个模块是否已经加载
  1. ls -l /sys/module | grep -i "bridge"
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023212453492-776129776.png[/img]
查看系统上的所有块设备

每个块设备都有一个对应的子目录(与块设备的名称同名),这些子目录内部包含关于设备的详细信息,例如设备的大小、模型、统计信息等。这些信息以文件形式存在,可以直接读取它们来获取有关设备的信息。
  1. /sys/block
复制代码
例如:查看主机上的块设备文件
  1. ls -l /sys/block/
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023212534000-1955349786.png[/img]
sysctl 使用

sysctl 主要用于查询和修改 /proc/sys 目录下的内核参数,不能用于修改 /sys 目录或其他位置的参数。 但是使用sysctl调整的内核参数也是临时生效的,可以通过写入配置文件的方式来实现持久化生效。
systctl的配置文件


  • sysctl有很多个个配置文件,主要从 /etc/sysctl.conf 以及 /etc/sysctl.d/ 目录中的文件读取设置。一般只需要将相关配置放在 /etc/sysctl.conf 这个文件里面就行了。
  • 编写配置文件时,有一点不同的是,sysctl中的配置是使用点(.)来隔开路径。/proc/sys不用写, 因为这个配置文件对应就是管理/proc/sys这个目录的。
  • 运行 sysctl -p(-p:从指定的文件加载系统参数) 命令(没有指定具体文件)加载参数时,系统首先会读取 /etc/sysctl.conf 文件中的设置,然后按字母/数字顺序读取 /etc/sysctl.d/ 目录中的所有 .conf 文件
说明:
-p 参数  从指定的配置文件中加载参数生效,不指定默认是/etc/sysctl.conf 文件中的设置,然后按字母/数字顺序读取 /etc/sysctl.d/ 目录中的所有 .conf 文件
如果只是想临时改变某个指定参数的值,使用sysctl 的 -w 参数 即可。
例如:临时开启网络转发
  1. sysctl -w net.ipv4.ip_forward=1
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023213401241-1773111738.png[/img]
通过 sysctl 的 -a 参数 即可显示所有生效的系统参数
  1. sysctl -a
复制代码
[img=50%,50%]https://img2023.cnblogs.com/blog/1519088/202310/1519088-20231023213318975-873659811.png[/img]
例如:禁止ping通本机
  1. vim /etc/sysctl.d/test.conf
  2. net.ipv4.icmp_echo_ignore_all=1
  3. sysctl -p /etc/sysctl.d/test.conf
复制代码
来源:https://www.cnblogs.com/heyongshen/p/17783252.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具