如何将条目附加到最后一行条目旁边的fstab?

时间:2015-04-02 12:01:42

标签: shell

您好我正在编写一个shell脚本,该脚本将附加到多个服务器上的fstab下面。

/dev/vg00/lv_berf       /opt/berf               ext3    defaults        1 2
/dev/vg00/lv_vberf      /var/opt/berf           ext3    defaults        1 2

但是有些fstab有不同的条目示例

服务器1上的fstab:

LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/vg00/lv_swap       swap                    swap    defaults        0 0

########### ABCD specific FS  ############################################
/dev/vgabdc/lv_apal3                   /opt/apal3              ext3    defaults        1 2

服务器2上的fstab /

dev/vgabc/lv_vabc       /var/opt/das           ext3    defaults        1 2
/dev/vgabc/lv_vabcoracle /var/opt/oracle/abc    ext3    defaults        1 2
/dev/vgabc/lv_vgdb20u01  /var/opt/vgdb20        ext3    defaults        1 2
/dev/vgabc/lv_dasredprairie     /opt/redprairie ext3    defaults        1 2
/dev/vgabc/lv_common     /opt/common            ext3    defaults        1 2
########### ABCD Failover filesystems  ############################################
/dev/vgabcd/lv_apal3                   /abcd/opt/apal3              ext3    defaults        1 2

我希望在" ########### ABCD之前附加..."并在最后一个条目旁边

服务器1上的

fstab

LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/vg00/lv_swap       swap                    swap    defaults        0 0
/dev/vg00/lv_berf       /opt/berf               ext3    defaults        1 2
/dev/vg00/lv_vberf      /var/opt/berf           ext3    defaults        1 2

########### ABCD specific FS  ############################################
/dev/vgabdc/lv_apal3                   /opt/apal3              ext3    defaults        1 2
服务器2上的

fstab

/dev/vgabc/lv_vabc       /var/opt/das           ext3    defaults        1 2
/dev/vgabc/lv_vabcoracle /var/opt/oracle/abc    ext3    defaults        1 2
/dev/vgabc/lv_vgdb20u01  /var/opt/vgdb20        ext3    defaults        1 2
/dev/vgabc/lv_dasredprairie     /opt/redprairie ext3    defaults        1 2
/dev/vgabc/lv_common     /opt/common            ext3    defaults        1 2
/dev/vg00/lv_berf       /opt/berf               ext3    defaults        1 2
/dev/vg00/lv_vberf      /var/opt/berf           ext3    defaults        1 2
########### ABCD Failover filesystems  ############################################
/dev/vgabcd/lv_apal3                   /abcd/opt/apal3              ext3    defaults        1 2

我有一个使用sed的工作脚本

line_count=`ssh $i grep -n "ABCD" fstab | cut -d: -f1`
  next_line=$((line_count + 1))
  ssh $i sed -i  "${line_count}i\ '/dev/vg00/lv_berf       /opt/berf               ext3    defaults        1 2'" fstab
  ssh $i sed -i  "${next_line}i\ '/dev/vg00/lv_vberf      /var/opt/berf           ext3    defaults        1 2'" fstab

问题是,当fstab条目在ABCD之前有空格时,它将附加到空格旁边。就像在server1上的fstab上的例子一样,它在### ABCD之前有空格,所以当脚本运行时它将如下所示:

tab1
LABEL=/boot             /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/vg00/lv_swap       swap                    swap    defaults        0 0

/dev/vg00/lv_berf       /opt/berf               ext3    defaults        1 2
/dev/vg00/lv_vberf      /var/opt/berf           ext3    defaults        1 2
########### ABCD specific FS  ############################################
/dev/vgabdc/lv_apal3                   /opt/apal3              ext3    defaults        1 2

如何解决不影响服务器2上具有不同最后条目的fstab上的其他条目的问题?

1 个答案:

答案 0 :(得分:0)

使用函数addmntent()

参见addmntent的手册页