Bash Script para montar o compartilhamento e iniciar o rsync

0

Há uma necessidade de migrar dados de um servidor para outro quando começamos a desatribuir o primeiro servidor; o primeiro servidor é uma máquina OS X 10.9.5. Eu gostaria de criar um script que, quando iniciado, montaria automaticamente os pontos de compartilhamento apropriados e começaria a passar os dados novamente. Aqui está o que eu tenho, exceto que não está funcionando

echo "Mounting Share..."
mkdir /tmp/Share
mount_smbfs //$USER:[email protected]/Share /tmp/Share
rsync -vuhma --progress /Volumes/Path/SharedFolders/Share/ /tmp/DocShare

O roteiro faz o caminho até este ponto e todo o inferno se solta. Ele cria o diretório, inicia o processo de montagem, mas não espera que a montagem realmente ocorra antes de iniciar o rsync. Isso faz com que o rsync apenas despeje os arquivos em uma pasta, não no ponto de compartilhamento real.

Como posso ter certeza de que o script pausa durante a montagem do volume antes de iniciar o rsync?

    
por Andrew 11.09.2015 / 13:49

1 resposta

1

Você pode adicionar isso ao seu script, que verifica o ID do dispositivo do sistema de arquivos raiz em relação ao ponto de montagem / tmp / Share. O script sai depois de 10 tentativas.

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 
    
por 11.09.2015 / 15:23