理解しようとしているのですが、b/c ping が機能することもありますが、それは b/c の単なる reg です。ICMP ですが、実際のトラフィックがトンネルを通過しようとすると、2 ~ 3 個のトンネルが存在するために機能しません。IF $tunnels > 1 AND $tunnels == 0 を実行して、以下の IPSec の再起動を実行したいと考えています。
それほど簡単ではない
#!/bin/bash
echo begin ping
ping -c 3 -w 3 -t 2 192.168.1.4 &> /dev/null ;
service ipsec status | awk 'NR==3' | cut -d" " -f1 $tunnels
if
[ $? == 0 ]
then
echo "Connection is up" >> /root/restart_ipsec.log
else
echo "Connection is down" >> /root/restart_ipsec.log
date >> /root/restart_ipsec.log;
/sbin/service crond stop >> /root/restart_ipsec.log;
/sbin/service ipsec stop >> /root/restart_ipsec.log;
sleep 120;
/sbin/service ipsec start >> /root/restart_ipsec.log;
/sbin/service crond start >> /root/restart_ipsec.log;
fi
私はこれを試しましたが、何があっても最初のものを使い続けます。トンネルの量が 1 または 0 より大きいと言っても、そのステートメントを使用します。何を与える!?
tunnels=$(service ipsec status | awk 'NR==3' | cut -d" " -f1 | sed -e 's/^[ ]*//')
a=0
if
(( $tunnels > $a));
then
echo "To many tunnels =" $tunnels >> /root/restart_ipsec2.log;
echo $a;
elif
[ $tunnels == 0 ]
then
echo "To many tunnelss =" $tunnels >> /root/restart_ipsec2.log
elif
echo "luis3";
[ $? == 0 ]
then
echo "Connection is up" >> /root/restart_ipsec2.log
else
echo "Connection is down" >> /root/restart_ipsec2.log
fi