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

简介:

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


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

1
2
3
4
5
6
7
8
9
10
11
12
/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

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

1
2
3
4
5
6
7
8
9
10
11
12
/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地址文件,内容如下:

  2. 1
    2
    3
    4
    5
    6
    7
    [root@ceshiji xgfs] # cat ip.txt
    192.168.100.114
    192.168.100.113
    192.168.100.112
    192.168.100.111
    192.168.100.110
    。。。。。
  3. 由于是实验,我将/etc/fstab文件复制一份到/oldboy/kewai/xgfs/pfzh,下面是expect脚本,用于完成交互,内容如下:

  4. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [root@ceshiji xgfs] # cat fs.exp
    #!/usr/bin/expect
    set  ip [lindex $argv 0]
    set  timeout 60
    set  password   "root"
    spawn  ssh  root@$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
  5. shell脚本使用for循环,脚本内容如下:

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

  6. 1
    2
    3
    4
    5
    6
    7
    8
    9
    [root@ceshiji 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
  7. 执行sh -x fs.sh即可



     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1958205,如需转载请自行联系原作者






相关文章
|
Linux 开发工具
Linux 多个vi、vim进程编辑同一文件时的临时文件问题
Linux 多个vi、vim进程编辑同一文件时的临时文件问题
230 0
|
10月前
|
开发工具
常用的vim配置,_vimrc文件
常用的vim配置,_vimrc文件
|
11月前
|
Linux 开发工具
Vim不常见但是很实用的命令技巧
Vim不常见但是很实用的命令技巧
64 0
|
开发工具 Windows Perl
|
SQL 开发工具 Perl
[20180417]vim小技巧.txt
[20180417]vim小技巧.txt --//今天调试plsql,发现跟踪到的sql语句在跟踪文件是在一行的,开始以为是开发写成这样,实际上PL/SQL写的语句 --//到跟踪就变成一行,这样就太长,这样为了更好观察我必须设置wrap,执行如下:set wr...
1051 0
|
Linux 开发工具
Linux vi vim 查找和替换字符串 命令
一、vi查找: 当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?在vi里可没有菜单-〉查找,不过没关系,你在命令模式下敲斜杆(/)这时在状态栏(也就是屏幕左下脚)就出现了 “/”然后输入你要查找的关键字敲回车就可以了。
3115 0