我有一个代码可以检测OpenVPN连接是启动还是关闭:
if echo 'ifconfig tun0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
then
echo "VPN up"
else
echo "VPN down"
fi
exit 0
现在我正在尝试重新编写代码以使用PPTP或IPSEC连接。我试过这样做:
if echo 'ifconfig ppp0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
或与ipsec相同但不起作用。有没有其他方法可以检测PPTP或IPSEC连接?
答案 0 :(得分:2)
以下脚本将:
sudo crontab的内容:
*/5 * * * * /home/userXXX/ISPConnectivity.sh >> /home/userXXX/ISPConnectivity.log 2>&1
ISPConnectivity.sh脚本的内容:
#!/bin/bash
# add ip / hostname separated by white space
#HOSTS="1.2.3.4"
HOSTS="8.8.8.8 4.2.2.4"
# no ping request
totalcount=0
COUNT=4
DATE=`date +%Y-%m-%d:%H:%M:%S`
if ! /sbin/ifconfig tun0 | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
then
echo $DATE tun0 down
sudo /home/userXXX/startVPN.sh start
else
for myHost in $HOSTS;
do
count=`ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }'`
totalcount=$(($totalcount + $count))
done
if [ $totalcount -eq 0 ]
then
echo $DATE $totalcount "fail"
sudo /home/userXXX/startVPN.sh start
#else
# echo $DATE $totalcount "pass"
fi
fi
答案 1 :(得分:1)
echo
声明是错误的。正如@unwind所说,单引号(')应该是后缀(`)。您当前的代码将文字值ifconfig ppp0
发送给grep,这对任何有用的内容都没有。
但你实际上并不需要背景。您只需将ifconfig
的输出发送到grep
目录;使用echo
不会得到任何东西:
if ifconfig ppp0 | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"; then
echo ppp connection is up
fi
答案 2 :(得分:1)
您还可以使用nmcli命令进行检查,以检查VPN是否正在运行。
nmcli c显示--active | grep vpn
答案 3 :(得分:0)
我实际上正在研究更灵活的解决方案,例如:
<div class="DTTT btn-group">
<a class="btn xls_icon_class downLoadIcon_dataTable"
id="ToolTables_documentos_0" data-original-title="">
<span></span>
<div style="left: 0px; top: 0px; width: 16px; height: 16px; position:
absolute; z-index: 99;">
<embed name="ZeroClipboard_TableToolsMovie_1" width="16" height="16"
align="middle" id="ZeroClipboard_TableToolsMovie_1" pluginspage="http://www.macromedia.com/go/getflashplayer"
src="/factemipf_static/swf/copy_csv_xls_pdf.swf" type="application/x-
shockwave-flash" wmode="transparent" flashvars="id=1&width=16&
amp;height=16" allowfullscreen="false" allowscriptaccess="always"
bgcolor="#ffffff" quality="best" menu="false" loop="false"></div></a></div>"
那怎么样?我能以任何方式改进吗?
答案 4 :(得分:-2)
ip路由列表表220,如果显示的是IP地址->已建立VPN连接,无->没有VPN
或
if [“ 0” == ifconfig | grep wlan0 | wc -l
];然后回显“ NO wlan0 has no VPN”;否则回显“是wlan0具有VPN”; fi