用于安装共享和启动rsync的Bash脚本


0

在我们开始停用第一台服务器时,需要将数据从一台服务器迁移到另一台服务器。第一台服务器是OS X 10.9.5计算机。我想设计一个脚本,该脚本在启动时将自动挂载适当的共享点并开始重新同步数据。这是我所拥有的,除了不起作用

echo "Mounting Share..."
mkdir /tmp/Share
mount_smbfs //$USER:$PASSWORD@server.domain.com/Share /tmp/Share
rsync -vuhma --progress /Volumes/Path/SharedFolders/Share/ /tmp/DocShare

该脚本可以解决这一问题,并且一切都变得一团糟。它创建目录,启动挂载过程,但在启动rsync之前不等待挂载实际发生。这将导致rsync仅将文件转储到文件夹中,而不是实际的共享点。

在启动rsync之前,如何确保脚本在挂载卷时暂停?

Answers:


1

您可以将其添加到脚本中,该脚本根据安装点/ tmp / Share检查根文件系统的设备ID。尝试10次后,脚本退出。

count=0
while :
do if  [ "$(stat -f %d /)" -ne "$(stat -f %d /tmp/Share)" ]
   then rsync …… #put the full command here (watch your paths)
   else if [ "$count" -lt 10 ]
        then echo "Waiting for the filesystem to mount"
             ((count++))
             sleep 1
        else echo "CANNOT MOUNT THE FILESYSTEM"
             exit
        fi
  fi
done 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.