im пытается выяснить, b/c иногда пинг будет работать, но это b/c его просто reg. ICMP, но когда реальный трафик пытается пройти через туннель, он не будет работать b/c, есть 2-3 туннеля вверх. Я хочу использовать туннели IF $> 1 AND $ tunnels == 0, чтобы сделать перезапуск IPSec ниже.Сценарий проверки туннелей - Awk
не так просто
#!/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
'[$? == 0] 'проверяет, удалось ли« вырезать ». Это то, что вы хотите? Расскажите, пожалуйста, на простом английском языке, что вы пытаетесь сделать, чтобы мы могли помочь вам. –
$? == 0 спрашивает, ответил ли пинг или нет, НО мне также нужно выяснить, сколько туннелей ipsec имеет. если 1 это нормально, если более 1 ИЛИ 0 для перезапуска службы. – Luis
$? это статус выхода последней команды запуска, которая 'cut' в вашем скрипте, а не' ping'. –