在 Linux 工作站上设置中央“/home”目录的标准方法是使用 NFS。问题是我不喜欢 NFS 缺乏真正的安全性。所以我想尝试使用 SSHFS。SSHFS 本身运行良好,问题在于启动时安装它。如果我在“/etc/fstab”中添加一行用于 SSHFS 共享,工作站会抱怨它无法联系 SSH 服务器。这是真的,因为“/etc/fstab”行是在网络实际启动之前执行的!
现在我正在使用以下初始化脚本来挂载“/home”:
#!/bin/sh
# Mounts "/home" over SSHFS at boot
start () {
while true; do
ping -c 1 "10.0.0.200" 1> /dev/null
if [ "$?" = 0 ]; then
break
fi
sleep 1
done
sshfs [email protected]:/home/ /home/ -o transform_symlinks,allow_other,nonempty,hard_remove
}
case "$1" in
start)
start
;;
*)
echo "Usage: $0 {start}"
exit 1
esac
基本上,它每秒 ping 一次 SSH 服务器,直到可以连接,然后它会挂载 SSHFS 共享。
我的问题是:有没有一种更直接、更少“黑客”的方式让“/etc/fstab”等到有活动的网络连接后再尝试挂载“/home”?
我的另一个想法是添加“sshfs[电子邮件保护]:/home/ /home/-o transform_symlinks,allow_other,nonempty,hard_remove” 行作为“/etc/network/interfaces”中的“post-up”脚本,但这仍然感觉不对。
环境:
服务器操作系统:Ubuntu 服务器版本 10.04
客户端操作系统:Ubuntu 桌面 10.04
答案1
您可能想要添加_netdev
延迟安装的选项,直到网络启用:
sshfs#[email protected]:/home/ /home/ fuse transform_symlinks,allow_other,_netdev,nonempty,hard_remove 0 0
您也可以将脚本/etc/network/if-up.d/
或挂载命令放入其中/etc/rc.local
。