私はBashの経験はほとんどありませんが、ここでは達成しようとしていることがあります。テキストファイル内の文字列を検索し、結果に基づいて特定のアクションを実行する方法
私は2つの異なるテキストファイルに複数のサーバー名を付けました。 Windowsアップデートをインストールしてリブートする前に、すべてのnagiosホスト/サービスアラートを無効にする必要があります。
host=/Users/bob/WSUS/wsus_test.txt
password="my_password"
while read -r host
do
curl -vs -o /dev/null -d "cmd_mod=2&cmd_typ=25&host=$host&btnSubmit=Commit" "https://nagios.fqdn.here/nagios/cgi-bin/cmd.cgi" -u "bob:$password" -k
done <wsus_test.txt>> /Users/bob/WSUS/diable_test.log 2>&1
これは私の現在のコードが意図した通りに縮小されたものですが、複数の地域にサーバーがあります。各サーバー名には、地域(LAX、NYCなど)に基づいて3文字のコードが付加されています。第2に、各地域にはNagiosサーバーがあるので、渡されるサーバー名に基づいて正しい地域のNagiosサーバーに接続するには上記のコードが必要です。
テキストファイルに4つのテストサーバーを追加しようとしました。
if grep lax1 /Users/bob/WSUS/wsus_text.txt; then
<same command as above but with the regional nagios server name>
fi
これは意図したとおりに機能せず、実際にはAPI呼び出しで無効/有効にするものはありません。もう一度、私はBashで少しでもやったことがありますので、どのような指摘にも感謝します。
あなたはwsus_text.txtからいくつかのサンプル行を貼り付けてくださいことはできますか? – codeforester
ああ、ちょうどFQDNなので、lax1-fs01.company.priv、lax1-ts01.company.priv、nyc1-dc01.company.privなどのようなものです。各行でFQDNを区切ります。 –