温馨提示×

如何备份Debian ulimit

小樊
48
2026-07-23 21:31:49
栏目: 智能运维

在 Debian 系统中,ulimit 本身不是一个文件,而是 shell 的资源限制设置,来源于:

  • PAM/etc/security/limits.conf/etc/security/limits.d/*
  • systemd(service 的 Limit* 配置)
  • shell 启动脚本~/.bashrc~/.profile 等)
  • 当前 shell 会话

因此“备份 ulimit”通常是 备份这些配置来源,而不是单个命令。


一、备份当前 ulimit 设置(快照)

1️⃣ 查看并导出当前会话的 ulimit

ulimit -a

建议保存为文件:

ulimit -a > ulimit_backup_$(hostname)_$(date +%F).txt

⚠️ 注意:
只适用于当前 shell 会话,重启或新 shell 不会自动恢复。


二、备份 ulimit 的“真正配置来源”(推荐)

2️⃣ 备份 PAM limits(最常见)

这是影响 登录用户 ulimit 的关键配置。

cp -a /etc/security/limits.conf /etc/security/limits.conf.bak
cp -a /etc/security/limits.d /etc/security/limits.d.bak

或者一起打包:

tar czf ulimit_limits_backup.tar.gz \
    /etc/security/limits.conf \
    /etc/security/limits.d

这是最重要的备份


3️⃣ 备份 systemd 的资源限制(服务级)

systemd 服务会覆盖 ulimit 设置。

查看所有 service 的 Limit:

systemctl show --property=Limit*

备份 systemd 配置

cp -a /etc/systemd/system.conf /etc/systemd/system.conf.bak
cp -a /etc/systemd/user.conf /etc/systemd/user.conf.bak

如果有自定义 service:

cp -a /etc/systemd/system /etc/systemd/system.bak

4️⃣ 备份 shell 启动脚本(用户级)

有些用户会在 shell 里手动 ulimit -n 65535

cp ~/.bashrc ~/.bashrc.bak
cp ~/.profile ~/.profile.bak

系统级:

cp /etc/profile /etc/profile.bak
cp -a /etc/profile.d /etc/profile.d.bak

三、迁移 / 恢复 ulimit 配置

在新系统恢复 PAM limits:

cp limits.conf.bak /etc/security/limits.conf
cp -a limits.d.bak/* /etc/security/limits.d/

让配置生效

reboot

或重新登录(PAM 在登录时生效)


四、常见误区 ❌

误区 说明
ulimit 是系统配置 ❌ 只是 shell 运行时的限制
sysctl = ulimit sysctl 是内核参数(如 fs.file-max)
备份 /proc/sys ❌ 重启即失效

五、总结(备份优先级)

必须备份

  • /etc/security/limits.conf
  • /etc/security/limits.d/*

建议备份

  • /etc/systemd/system
  • /etc/systemd/system.conf
  • shell 启动脚本

可选

  • 当前 ulimit -a 快照(便于对比)

如果你愿意,可以告诉我:

  • 用户级 ulimit(如 open files)
  • 还是 系统服务(如 nginx / mysql)
  • 还是 Docker / K8s 环境

我可以给你一套 精确对应的备份与恢复方案

0