我在连接到无线网络的笔记本电脑上启动时在 /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)