構成ファイルを更新するスクリプト

構成ファイルを更新するスクリプト

RHEL 7.0システムを使用しています。次のフィールドを含むboot.cfgファイルがあります。

bootstate=0 title=ESXi インストーラの読み込み中のタイムアウト=5 プレフィックス=http://172.32.88.150/esxi65 カーネル=tboot.b00

kernelopt=mbr を使用してイタチ形式を実行する

boot.cfgファイルのIPアドレスをどのように更新しますか?

以前は次のスクリプトを使用していました。

#!/bin/bash

sed '/[kernel=tboot.b00]/a [プレフィックス=http://172.32.88.149/esxi65]/'start.cfg


更新されたIPアドレスを「カーネル...」フィールドの末尾に追加するためにsedを使用しようとしています。しかし、何の変化もなかった。

第二に、IPアドレスの変更が一時的ではなく保存されているかどうかを確認する方法は?

事前にありがとう

答え1

入力ファイル

bootstate=0 title=Loading ESXi installer timeout=5 prefix=http://172.32.88.150/esxi65 kernel=tboot.b00

注文する


sed -i  "s;kernel.*;&[prefix=http://172.32.88.149/esxi65];g" boot.cfg

上記のコマンドを実行すると、boot.cfgは次のようになります。

bootstate=0 title=Loading ESXi installer timeout=5 prefix=http://172.32.88.150/esxi65 kernel=tboot.b00[prefix=http://172.32.88.149/esxi65]

答え2

まあ、2番目の質問に対する答えを見つけました http://brunolinux.com/02-The_Terminal/Find_and%20Replace_with_Sed.html

前のフィールドを追加するのではなく、プレフィックスフィールドを完全に置き換えたり更新したりするには、「エスケープ文字」(\)が必要です。修正されたコードは次のとおりです。

sed -i 's;prefix.*;prefix=http://172.32.88.149/esxi65;g' boot.cfg

早く助けてくれたkumarと上記のウェブサイトに感謝します!

関連情報