如何使用Ansible更新limits.conf文件中的ulimit值?
批量更新limits.conf中的ulimit值
要批量替换/etc/security/limits.conf里所有用户的nproc和fsize值(忽略soft/hard标识及字段间空格数量),可以用sed命令一次性完成:
直接修改文件的命令
sed -i -E 's/^([^[:space:]]+)([[:space:]]+(soft|hard))?[[:space:]]+nproc[[:space:]]+[0-9]+/\1\2 nproc 32000/; s/^([^[:space:]]+)([[:space:]]+(soft|hard))?[[:space:]]+fsize[[:space:]]+[0-9]+/\1\2 fsize 10000000/' /etc/security/limits.conf
先测试再修改的建议
如果担心误改,先执行不带-i的命令预览替换结果,确认无误后再加上-i修改文件:
sed -E 's/^([^[:space:]]+)([[:space:]]+(soft|hard))?[[:space:]]+nproc[[:space:]]+[0-9]+/\1\2 nproc 32000/; s/^([^[:space:]]+)([[:space:]]+(soft|hard))?[[:space:]]+fsize[[:space:]]+[0-9]+/\1\2 fsize 10000000/' /etc/security/limits.conf
命令说明
-E:启用扩展正则表达式,支持更灵活的匹配规则- 第一个替换规则:匹配所有含
nproc的行,保留用户名和soft/hard标识(如果有),将原有数值替换为32000 - 第二个替换规则:同理处理含
fsize的行,将原有数值替换为10000000 - 正则会自动匹配字段间的单个或多个空格,无需额外处理空格差异
内容的提问来源于stack exchange,提问作者Prabhu
相关产品推荐
相关产品推荐

