2

我必须编辑 /etc/fstab 来更改 /dev/shm 参数的安装选项。

源代码是:

tmpfs                   /dev/shm                tmpfs   size=11g        0 0

我想为许多服务器的 /dev/shm 分区添加 noexec 到第四个字段(挂载选项)。(挂载选项的大小不同)所以我厌倦了这段代码:获取挂载选项的值。我用了:

shmvar=`grep -E '\s/dev/shm\s' /etc/fstab | awk '{ print $4 }'`

输出是:size=11g

sed -i -e '/shm/s/$shmvar/$shmvar,noexec/' /etc/fstab

或者

sed -i -e '/shm/s/$shmvar/&,noexec/' /etc/fstab

但是 sed 命令都不起作用。

当我使用“size=11g”而不是“$shmvar”时,它可以工作:

 sed -i -e '/shm/s/size=11g/size=11g,noexec/' /etc/fstab
OR
sed -i -e '/shm/s/size=11g/&,noexec/' /etc/fstab

但是由于服务器中的“大小”值不同,我必须使用变量

非常感谢一些快速帮助。谢谢

4

1 回答 1

4

使用GNU awk。如果第二个字段包含/dev/shm,则附加,noexec到第四个字段。

awk -i inplace 'BEGIN{ OFS="\t" } $2=="/dev/shm"{ $4=$4 ",noexec" } { print }' file

输出:

tmpfs /dev/shm tmpfs 大小=11g,noexec 0 0
于 2022-01-02T11:23:29.320 回答