等待其他电脑启动后再安装 Samba 共享

等待其他电脑启动后再安装 Samba 共享

我正在通过 /etc/fstab 安装 samba 共享。我的问题是,如果它们已关闭,然后我启动它们,则安装共享的机器会先启动,因此共享尚不可用。是否有选项可让其尝试安装共享,直到共享可用?

问题是,这些共享中包含应用程序正常运行所需的数据

答案1

不要通过 fstab 自动挂载它,而是使用 crontab:

  1. 设置fstab不自动挂载共享

    //servername/sharename  /media/windowsshare  cifs  noauto  0  0
    

    你可以在那里有各种其他选项,大概你已经有了。重要的是添加,noauto以确保

          noauto do not mount when "mount -a"  is  given  (e.g.,  at  boot
                 time)
    
  2. 创建一个每分钟运行一次的 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一旦有人尝试访问系统,它就会按需安装系统。

相关内容