我正在编写我的第一个bash脚本,以检查是否使用nmcli连接了vpn,但是它仍然无法识别断开连接。
这很简单:
PIAUUID="e53d9304-bde2-40e1-8f57-a3fa7115a383"
nmcli con up $PIAUUID
while [ "true" ]
do
if [[ $(nmcli con | grep -m 1 "$PIAUUID" | cut -b 26-61) != $PIAUUID ]]; then
printf "Disconnected at $(date +'%m/%d/%Y %I:%M:%S') trying to reconnect"
(sleep 1s && nmcli con up $PIAUUID)
else
echo "Connected - checked at $(date +'%m/%d/%Y %I:%M:%S')"
fi
sleep 30
done > monitor.log
所有变量,连接信息等都包含在外部文件中。仅应确保此do-while循环确保从nmcli获得的UUID与提供的用于标识连接参数文件的UUID相同。
假定是,如果它们不相同,则nmcli将不会连接到VPN,它将尝试重新连接。
但是,如果我运行脚本,然后在VPN运行时断开与VPN的连接,它将无法识别。因此,以某种方式测试两个UUID的相等性是行不通的。