使用sed工具处理/etc/fstab配置文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用sed工具处理/etc/fstab配置文件相关的知识,希望对你有一定的参考价值。

使用sed工具处理/etc/fstab配置文件


背景:某行有一百多台服务器需要重新配置文件系统,原有的文件系统的内容如下:

/dev/sdb1        /data/ssd1

/dev/sdc1        /data/ssd2

/dev/sdd1        /data/disk

/dev/sde1        /data/disk2

/dev/sdf1        /data/disk3

/dev/sdg1        /data/disk4

/dev/sdh1        /data/disk5

/dev/sdi1        /data/disk6

/dev/sdj1        /data/disk7

/dev/sdk1        /data/disk8

/dev/sdl1        /data/disk9

/dev/sdm1        /data/disk10

现要求将其改为如下内容:

/dev/sdb         /data/ssd1

/dev/sdc         /data/ssd2

/dev/sdd         /data/disk

/dev/sde         /data/disk2

/dev/sdf         /data/disk3

/dev/sdg         /data/disk4

/dev/sdh         /data/disk5

/dev/sdi         /data/disk6

/dev/sdj         /data/disk7

/dev/sdk         /data/disk8

/dev/sdl         /data/disk9

/dev/sdm         /data/disk10

由于服务器数量较多和客户要求尽快处理,鉴于此,我使用shell脚本与expect脚本结合的方法进行处理,具体步骤如下:

  1. 先建立一个ip地址文件,内容如下:

    [[email protected] xgfs]# cat ip.txt

    192.168.100.114

    192.168.100.113

    192.168.100.112

    192.168.100.111

    192.168.100.110

    。。。。。

  2. 由于是实验,我将/etc/fstab文件复制一份到/oldboy/kewai/xgfs/pfzh,下面是expect脚本,用于完成交互,内容如下:

    [[email protected] xgfs]# cat fs.exp

    #!/usr/bin/expect

    set ip [lindex $argv 0]

    set timeout 60

    set password  "root"

    spawn ssh [email protected]$ip  {sed  -i -r ‘s#/dev/sd([a-z]).*   (.*)#/dev/sd\1     \2#‘ /oldboy/kewai/xgfs/pfzh}

    expect {

    "yes/no"  {exp_send "yes\r";exp_continue}

    "*password:" {exp_send  "$password\r"}

    }

    expect eof

    exit

  3. shell脚本使用for循环,脚本内容如下:

    [[email protected] xgfs]# cat fs.sh

    #!/bin/bash

    for ip in $(cat /oldboy/kewai/xgfs/ip.txt)

    do

    expect fs.exp $ip

    cat /oldboy/kewai/xgfs/pfzh

    #mount -a

    #df -Th

    done

    说明:实际生产中要使用mount -a重新挂载下文件系统,使用df -Th查看下文件系统挂载情况!

  4. 执行sh -x fs.sh即可




本文出自 “圣骑士控魔之手” 博客,请务必保留此出处http://wutengfei.blog.51cto.com/10942117/1958205

以上是关于使用sed工具处理/etc/fstab配置文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux练习题-文本处理工具sed(施工中)

处理/etc/fstab路径,使用sed命令取出其目录名和基名

sed 练习

第四周作业

配置Linux自动挂载

第五周