自动挂载临时离线的网络共享

自动挂载临时离线的网络共享

以下问题:我有一台服务器需要安装 Windows 网络共享才能在其上复制文件。所以我在 中添加了共享,fstab以便在启动时安装它。

 //192.168.1.xx/share   /mnt/networkshare   cifs    noperm,username=user,password=******    0   0

脚本循环复制共享上的文件,如下所示:

while [ true ]
  do
    if [ -f /path/to/the/file ]
    then
      mv /path/to/the/file /mnt/networkshare
    fi
done

问题是,Windows 计算机在早上启动时晚上会关闭。首先,在此期间,由于 while [true] 脚本,服务器上的负载在一个核心上为 100%。其次,有时Windows计算机启动后挂载不再起作用。 (运行 crontab* * * * * mount -a再次挂载所有文件)文件不会被复制,并且在服务器上无法访问挂载。需要重新启动。

如何确保计算机开启时安装座始终在那里。我是否需要以某种方式卸载共享?我可以每天晚上卸载它,但是如果 Windows 计算机在白天重新启动怎么办?如果晚上没有挂载以降低 CPU 负载,我该如何暂停 while [true] 脚本?

感谢您的帮助!

答案1

您可以在尝试移动之前检查安装:

df | grep "/mnt/networkshare" |grep -v grep >/dev/null; r=${?}
if [ ${r} -eq 0 ]
then
  mv /path/to/the/file /mnt/networkshare
fi

sleep此外,在进程中添加命令可能会缓解 100% CPU 利用率问题。不间断地锤炼一个流程并不是一个好方法。

相关内容