在 VPN 因暂停而断开连接之前自动卸载 sshfs 网络驱动器

在 VPN 因暂停而断开连接之前自动卸载 sshfs 网络驱动器

这里是一个相当新的 Linux 用户。为了工作,我经常在 Xubuntu 15.05 中通过 sshfs 安装两个网络驱动器。现在我编写了一个小的 bash 脚本来安装/卸载这两个驱动器并在本地 bin 中创建指向它们的符号链接,以方便我自己使用,它们工作正常。问题是我只能在连接 VPN 时安装这些网络驱动器,当我暂停笔记本电脑时(有时我不得不非常意外地这样做),VPN 连接会中断,而磁盘不会被卸载。稍后恢复会话后,磁盘似乎卡在安装和卸载之间。我无法访问磁盘,但也无法卸载它们,甚至无法重新安装它们。有谁知道一种方法可以确保 VPN 连接因某种原因(暂停、网络故障或其他原因)中断时,两个磁盘都会自动卸载,以防止出现此问题?

非常感谢!Narameh

答案1

尝试这个

umount sshfs制作在vpn终止时驱动的脚本。

在文件夹中创建脚本/etc/network/if-down.d/并赋予其执行权限755

# Check for specific interface if desired
[ "$IFACE" != "ppp0" ] || exit 0
# Do something

umount /path/drive

何时执行int ppp0下行命令umount /path/drive

您也可以设置“自动挂载int ppp0

在中制作脚本/etc/network/if-up.d/

# Check for specific interface if desired
[ "$IFACE" != "ppp0" ] || exit 0
# Do something

your_script_for_mounting_drives

溶液 2 号

制作脚本link_stat

nano /path/link_stat

#!/bin/bash

if ip addr show ppp0 | grep 'state UP'; then
    echo "Network ok."
else
    echo "$ERR Network down, umounting"
    #put_here_your_sommand_for_umount
fi 2>&1 >> /path_to_log/stat_log

chmod 777 /path/link_stat

使用 cron 运行脚本

sudo crontab -e

每 30 秒运行一次命令

* * * * * /path/link_stat
* * * * * sleep 30 && /path/link_stat

这将检查vpn状态,如果状态为 dovn,则会卸载驱动器

相关内容