こんにちは私はリモートサーバーでNagiosをセットアップするためのスクリプトを作成しました。私のスクリプトはiptablesをチェックしてファイアウォールルールがすでに存在するかどうかを確認し、想定ルールがまだ存在しない場合はルールを追加します。
今のところ、スクリプトはルールをエコーアウトするだけですが、実際にはそれを書くことができません。助けていただければ幸いです。
ssh -t -t root@$serverName << EOF
service nrpe restart
chkconfig nrpe on
if [ "cat /etc/sysconfig/iptables | grep -- "5666"" != "-A INPUT -p tcp -m tcp --dport 5666 -j ACCEPT" ] ; then echo "iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT" ; fi
service iptables save
exit
EOF
あなたはただ変える必要があります
echo "iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT"
に
iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j ACCEPT
-s 0/0
を省略できます:
iptables -I INPUT -p tcp --dport 5666 -j ACCEPT
そして、INPUT
内の最適な位置を検討することは理にかなっています。このルールを(最初ではなく)5番目にする必要がある場合は、呼び出しを次のように変更します。
iptables -I 5 INPUT -p tcp --dport 5666 -j ACCEPT
そして
"cat /etc/sysconfig/iptables | grep -- "5666""
エラーが含まれています。コマンド
cat /etc/sysconfig/iptables | grep -- "5666"
実行されません。コマンド置換を追加する必要があります。
"$(cat /etc/sysconfig/iptables | grep -- "5666")"