Linux / Unix检查VPN连接是否处于活动/启动状态

Spy*_*der 5 unix linux ssh ubuntu vpn

我有一个代码来检测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
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试重新编写代码以与PPTP或IPSEC连接一起使用。我试着做:

if echo 'ifconfig ppp0' | grep -q "00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00"
Run Code Online (Sandbox Code Playgroud)

或与ipsec相同,但不起作用。还有其他方法可以检测PPTP或IPSEC连接吗?

lar*_*sks 3

这种echo说法是错误的。正如 @unwind 所说,单引号 (') 应该是反引号 (`)。您当前的代码正在将文字值发送ifconfig ppp0到 grep,这没有做任何有用的事情。

但实际上你也不需要后台。您可以将输出发送ifconfiggrep目录;使用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
Run Code Online (Sandbox Code Playgroud)