我對Bash的使用經驗很少,但這是我正在嘗試完成的。如何搜索文本文件中的字符串並根據結果執行特定操作
我有兩個不同的文本文件,其中有一堆服務器名稱。在安裝任何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
這是我目前代碼的簡化形式,它按預期工作,但是,我們在一堆地區有服務器。每個服務器名稱前面加上一個基於地區的3字母代碼(即LAX,NYC等)。其次,我們在每個地區都有一臺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。 –