【发布时间】:2015-07-15 03:17:46
【问题描述】:
我有一个代码可以检测 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 连接?
【问题讨论】:
-
echo的用法很奇怪。这些应该是反引号吗? -
这里有完整的代码并不奇怪:
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 1 > /usr/syno/etc/synovpnclient/vpnc_connecting synovpnc reconnect --protocol=openvpn --name=XXXXXX fi exit 0 -
所以基本上我需要在 VPN 关闭后重新连接...重新连接脚本工作正常,但我正在努力解决“如果”
-
对于看到这个问题的任何人,
if echo 'ifconfig tun0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"的意思是:检查字符串“ifconfig tun0”是否包含字符串“00-00-00-00-00-00-00- 00-00-00-00-00-00-00-00-00"。一个正确的例子是if ifconfig tun0 | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"(没有回显,没有单引号),这意味着:运行ifconfig tun0,然后从其输出中检查字符串。