使用sed工具處理 etc fstab配置檔案

2021-09-21 04:50:15 字數 3800 閱讀 7952

使用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指令碼結合的方法進行處理,具體步驟如下:

先建立乙個ip位址檔案,內容如下:

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

。。。。。

由於是實驗,我將/etc/fstab檔案複製乙份到/oldboy/kewai/xgfs/pfzh,下面是expect指令碼,用於完成互動,內容如下:

1

2

3

4

5

6

7

8

9

10

11

12

[root@ceshiji xgfs]# cat fs.exp

#!/usr/bin/expect

setip [lindex $ar** 0]

settimeout 60

setpassword"root"

spawnsshroot@$ip

expect

"*password:"

}

expect eof

exit

shell指令碼使用for迴圈,指令碼內容如下:

說明:實際生產中要使用mount -a重新掛載下檔案系統,使用df -th檢視下檔案系統掛載情況!

1

2

3

4

5

6

7

8

9

[root@ceshiji xgfs]# cat fs.sh

#!/bin/bash

foripin$(cat/oldboy/kewai/xgfs/ip.txt)

do

expect fs.exp $ip

cat/oldboy/kewai/xgfs/pfzh

#mount -a

#df -th

done

執行sh -x fs.sh即可

文字處理工具sed

sed全稱叫stream editor,是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 patternspace 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。然後讀入下行,執行下乙個迴圈。如果沒有使諸如 d 的特殊命令,那會在...

文字處理工具sed

1 刪除centos7系統 etc grub2.cfg檔案中所有以空白開頭的行行首的空白字元 sed d etc grub2.cfg 2 刪除 etc fstab檔案中所有以 開頭,後面至少跟乙個空白字元的行的行首的 和空白字元 sed r space d d etc fstab 包括空白行 sed...

shell指令碼之sed工具使用

執行 顯示 sed 選項 操作 引數 sed 選項 f 指令碼檔案 引數 3.3.1 p 輸出符合條件的文字 root localhost sed n p test.txt 輸出所有內容,等同於 cat test.txt 省略內容 root localhost sed n 3p test.txt 輸...