在 CentOS 中,您可以使用以下方法监控 ulimit 的使用情况:
使用 ulimit
命令查看当前用户和系统的 ulimit 值:
ulimit -a
这将显示所有当前设置的资源限制,包括用户限制(软限制)和系统限制(硬限制)。
查看特定用户的 ulimit 值:
ulimit -u <username>
将 <username>
替换为您要查询的用户名。
查看特定进程的 ulimit 值:
首先,您需要找到进程的 PID(进程 ID)。您可以使用 ps
或 pgrep
命令查找进程。例如,要查找名为 “nginx” 的进程,请运行:
pgrep nginx
假设您找到了进程的 PID 为 12345。要查看此进程的 ulimit 值,请运行:
ulimit -a -p 12345
如果您想要实时监控 ulimit 值的变化,可以使用 auditd
服务。首先,确保已安装并配置了 auditd
。然后,创建一个名为 “audit_ulimit.rules” 的文件,其中包含以下内容:
-w /etc/security/limits.conf -p wa -k ulimit_changes
-w /etc/security/limits.d/*.conf -p wa -k ulimit_changes
-w /etc/profile -p wa -k ulimit_changes
-w /etc/bashrc -p wa -k ulimit_changes
-w /etc/environment -p wa -k ulimit_changes
-w /etc/sysconfig/security -p wa -k ulimit_changes
-w /etc/ssh/sshd_config -p wa -k ulimit_changes
这些规则会监控与 ulimit 相关的配置文件的变化。接下来,创建一个名为 “audit_ulimit.service” 的 Systemd 服务文件,其中包含以下内容:
[Unit]
Description=Audit ulimit changes
RequiredStartServices=auditd.service
After=auditd.service
[Service]
Type=oneshot
ExecStart=/usr/bin/auditctl -w /etc/security/limits.conf -p wa -k ulimit_changes
ExecStart=/usr/bin/auditctl -w /etc/security/limits.d/*.conf -p wa -k ulimit_changes
ExecStart=/usr/bin/auditctl -w /etc/profile -p wa -k ulimit_changes
ExecStart=/usr/bin/auditctl -w /etc/bashrc -p wa -k ulimit_changes
ExecStart=/usr/bin/auditctl -w /etc/environment -p wa -k ulimit_changes
ExecStart=/usr/bin/auditctl -w /etc/sysconfig/security -p wa -k ulimit_changes
ExecStart=/usr/bin/auditctl -w /etc/ssh/sshd_config -p wa -k ulimit_changes
[Install]
WantedBy=multi-user.target
保存文件后,运行以下命令启用并启动审计服务:
sudo systemctl enable audit_ulimit.service
sudo systemctl start audit_ulimit.service
现在,每当与 ulimit 相关的配置文件发生变化时,auditd
都会记录这些更改。您可以通过查看 auditd
的日志文件(通常位于 /var/log/audit/audit.log
)来检查这些更改。