网络重新连接时重新挂载 CIFS

网络重新连接时重新挂载 CIFS

我在连接到无线网络的笔记本电脑上启动时在 /etc/fstab 上安装了 CIFS 网络共享。我的 fstab 如下所示:

//192.168.0.100/MyShare  /mnt/MyShare  cifs  username=<username>,password=<password>,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0770,dir_mode=0770,vers=3.0  0  0

现在,这通常可以正常工作,但作为一台笔记本电脑,我经常移动并经常重新连接到我的家庭无线网络。这意味着,当我离开网络时,共享挂载也会断开连接,但当我回到家时,它不会自动重新连接,因此每次发生这种情况时我都需要“mount -a”。

我正在寻找一个选项,可以在网络可用时自动安装它,或者至少在访问时自动安装(也就是说,当 Dolphin 或其他文件管理器访问安装点时,它应该以 root 身份重新安装)。

有没有简单的方法可以做到这一点? 有没有最佳实践? 谢谢!

稍后编辑:与此同时,我发现了一种我称之为解决方法而不是解决方案的东西,所以我会保持这个问题的开放:

  • 我创建了一个脚本,/etc/network/if-up.d/<script>在连接到我的网络时运行:
#!/bin/bash
if iwconfig|grep -c <SSID>
then                                                         
        mount -a
fi

所以现在,当我的连接处于活动状态时,一切都会自动安装。

答案1

您的脚本对我来说似乎是一个可行的选择。我见过解决 Linux 问题的方法要复杂得多。

另一个替代方案是使用 systemd automount 来满足or at least mounting automatically upon access要求。它很容易实现,如果这不是你想要的,也可以恢复。

[1] 如果共享已经挂载,则卸载它:

sudo umount /mnt/MyShare

[2] 在 fstab 声明中添加 3 个选项:noauto,x-systemd.automount,x-systemd.idle-timeout=30

//192.168.0.100/MyShare  /mnt/MyShare  cifs  username=<username>,password=<password>,rw,uid=1000,gid=1000,nounix,iocharset=utf8,file_mode=0770,dir_mode=0770,vers=3.0,noauto,x-systemd.automount,x-systemd.idle-timeout=30  0  0

然后做一些 systemd 的事情:

sudo systemctl daemon-reload
sudo systemctl restart remote-fs.target

共享不会在启动时挂载(noauto),但当访问挂载点时(noauto,x-systemd.automount),如果共享访问空闲超过 30 秒,它将自动卸载 - 用户可调整(x-systemd.idle-timeout = 30)

相关内容