私たちの環境では、Redhat Linux 5.6/6.4バージョンで実行され、診断情報を収集するためにoswatcherを使用しています。これはルートでスケジュールされ、30秒ごとに実行され、iostat、ネットワーク統計、CPUなどに関する情報を収集し、すべての情報をアーカイブディレクトリの.datファイル(フラットファイル)に保存します。
oswatcherブラックボックスアナライザが提供するインタラクティブコマンドに基づいて分析を実行します。 24時間ごとに実行されるシェルスクリプトを使用して分析を自動化し、24時間データをマイニングし、ダッシュボードを作成しようとしています。
以下は、3つの入力パラメータを必要とするダッシュボードを生成するコマンドです。一つは
java -jar oswbba.jar -i /opt/oracle/tfa/repository/suptools/<HOSTNAME>/oswbb/oracle/archive
- これで、対話的にオプションの1つが入力として提供されると予想されます。
Enter X to Export Parsed Data to Flat File
Enter S to Analyze Subset of Data(Changes analysis dataset including graph time scale)
Enter A to Analyze Data
Enter D to Generate DashBoard
Enter Q to Quit Program
Please Select an Option: << 1 or 2 or D (dashboard) >>
(ここでは入力をDとして提供したいです。この入力をシェルスクリプトの値として渡す必要があります)。どうやってそれを達成できますか?同様に、2番目の入力は、分析用に生成するディレクトリ名とディレクトリパスです。
自動分析のために、3つのパラメータすべてをシェルスクリプトに渡す必要があります。
クマールに挨拶します。
答え1
インタラクティブに入力を受け取ることは、から入力を受け取ることを意味しますstdin
。入力をプロセスに反映し、それを複製できますstdin
。
echo "D" | java -jar oswbba.jar -i /opt/oracle/tfa/repository/suptools/<HOSTNAME>/oswbb/oracle/archive
echo
改行文字で自動的に終了します。
追加の入力が必要な場合は、次のことができます。
echo -e "D\n<next_input>\n<next_input>" | ...
この-e
フラグは、次のエスケープシーケンスを解釈できます\n
。