我正在通过 /etc/fstab 安装 samba 共享。我的问题是,如果它们已关闭,然后我启动它们,则安装共享的机器会先启动,因此共享尚不可用。是否有选项可让其尝试安装共享,直到共享可用?
问题是,这些共享中包含应用程序正常运行所需的数据
答案1
不要通过 fstab 自动挂载它,而是使用 crontab:
设置
fstab
不自动挂载共享//servername/sharename /media/windowsshare cifs noauto 0 0
你可以在那里有各种其他选项,大概你已经有了。重要的是添加,
noauto
以确保noauto do not mount when "mount -a" is given (e.g., at boot time)
创建一个每分钟运行一次的 cron 任务,如果尚未安装共享,则安装该共享。将此行添加到
/etc/crontab
* * * * * root mount | grep windowsshare || mount /media/windowsshare
这样,磁盘一旦可用就会被安装。
为了实现更细粒度的控制,您可以编写一个脚本,该脚本 i) 检查服务器是否在线,ii) 挂载共享(除非已挂载)。然后您可以通过 cron 运行该脚本:
#!/usr/bin/env sh
hostname_or_ip_address="1.2.3.4" ## add your WIndows host's name or IP here
if ping -c 1 -W 1 "$hostname_or_ip_address" >/dev/null 2>&1; then
mount | grep windowsshare || mount /media/windowsshare
fi
将该脚本另存为/usr/bin/check_mount
或任何您想要的内容,使其可执行chmod +x /usr/bin/check_mount
,然后将此行添加到/etc/crontab
* * * * * root /usr/bin/check_mount
另一个值得研究的选择是autofs
一旦有人尝试访问系统,它就会按需安装系统。