一键修改Linux文件描述符

在 Linux 系统中,可以通过多种方式修改文件描述符。以下是一些常见的方法:

一、使用 shell 命令

  1. ulimit命令
    • ulimit命令可以用来限制 shell 启动进程所占用的资源,包括文件描述符数量。
    • 例如,要将当前 shell 的文件描述符数量软限制设为 1024,硬限制设为 2048,可以使用以下命令:ulimit -n 1024 -Hn 2048
    • 这种方式的修改只对当前 shell 及其启动的子进程有效,一旦 shell 退出,设置就会失效。

二、SHELL脚本一键修改

vi /opt/ulimit.sh
#!/bin/bash


#pam
if (( `grep limits.so /etc/pam.d/common-session|wc -l` < 1 ));then
        echo 'session required pam_limits.so' >> /etc/pam.d/common-session
        echo 'change pam ok'
fi

#limits
if (( `grep 1000001 /etc/security/limits.conf|wc -l` < 1 ));then
        echo 'root soft nofile 1000001' >> /etc/security/limits.conf
        echo 'root hard nofile 1000001' >> /etc/security/limits.conf
        echo '* soft nofile 1000001' >> /etc/security/limits.conf
        echo '* hard nofile 1000001' >> /etc/security/limits.conf
        echo 'change limits.conf ok'
fi

#sysctl
if (( `grep 1000001 /etc/sysctl.conf|wc -l` < 1 ));then
        echo 'fs.file-max = 1000001' >> /etc/sysctl.conf
        echo 'kernel.perf_cpu_time_max_percent = 0' >> /etc/sysctl.conf
        echo 'change sysctl.conf ok'
else
        echo 'nothing...'
fi

#formart
# mkfs.ext4 -m 0 -T largefile4 /dev/nvme1n1
bash  /opt/ulimit.sh