以下问题:我有一台服务器需要安装 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 利用率问题。不间断地锤炼一个流程并不是一个好方法。