1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Config ファイルを検索して、設定を書き換える

Posted at

JMeter にコンフィグファイルがあり、これをプロビジョニング時に書き換える必要が発生した。以前Go言語でやったことはあるが、シェルスクリプトでは、やったことがないので、方法を調べてみる。

設定変更の方式

property ファイルはよく Java で使われるが、例えば GO 言語だと、読むライブラリはあっても書くほうはなかった。プロビジョニング時で固定の変更をしたい場合きっとシェルファイルの中で実施するのが楽だろう。

ブログがあったので、自分でサンプル書いて理解してみる。jmeter.property ファイルをとってきて書き換えてみる。自分が変えたい行は

# Set this if you don't want to use SSL for RMI
# server.rmi.ssl.disable=false

このオプションを有効化したい。ブログを見てコマンドを書く。#とかはなんかエスケープが必要かなと思いつつまずそのままやると、普通に動く。

$ sed -i -e "s/#server.rmi.ssl.disable=false/server.rmi.ssl.disable=false/" jmeter.properties

これで無事ファイルが変更されたので、今回の fix としてはこれでよいが、意味を使わずに知るのは気持ちわるので、もう少し調べてみる。

ここにいいブログがあった

オリジナルの保存

-i--in-place オプションでこのオプションによって、ファイルの特定の場所の上書き更新ができる。ちなみに、オリジナルのファイルを保存したい場合は、-i に対してsuffix を指定できる。

$ sed -i.bak -e "s/#server.rmi.ssl.disable=false/server.rmi.ssl.disable=false/" jmeter.properties
$ diff ./jmeter.properties ./jmeter.properties.bak 
334c334
< server.rmi.ssl.disable=false
---
> #server.rmi.ssl.disable=false

大変良い感じだ。では、-e は何だろう?これは、script だ。sed は、Manによると、ストリームエディタで、基本的なテキストのトランスフォーメーションをするとあります。

-e script, --expression=script
add the script to the commands to be executed

スクリプトというとわかりずらいですが、このトランスフォーメーションをするスクリプトです。つまり、sedのコマンドになります。コマンドの詳細はここで見れます。

今回はs/before/after/の置換コマンドです。ちなみに最後の/を忘れたらおこられました。

今回はこれでいけそうです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?