我正在编写我的第一个 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 的连接,它就无法识别它。因此,它测试两个 UUID 是否相等的方式不起作用。