Bash Script untuk memasang share dan memulai rsync

0

Ada kebutuhan untuk memigrasikan data dari satu server ke server lainnya saat kami mulai menonaktifkan server pertama; server pertama adalah mesin OS X 10.9.5. Saya ingin membuat skrip yang, ketika diluncurkan, akan secara otomatis memasang poin pembagian yang sesuai dan mulai melakukan sinkronisasi data. Inilah yang saya miliki, kecuali itu tidak berfungsi

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

Script membuat jalannya ke titik ini dan semua neraka terlepas. Itu membuat direktori, memulai proses mount tetapi tidak menunggu mount benar-benar terjadi sebelum memulai rsync. Ini menyebabkan rsync hanya membuang file ke folder, bukan titik berbagi yang sebenarnya.

Bagaimana saya memastikan bahwa skrip berhenti sementara memasang volume sebelum memulai rsync?

Andrew
sumber

Jawaban:

1

Anda bisa menambahkan ini ke skrip Anda yang memeriksa ID perangkat sistem file root terhadap mountpoint / tmp / Share. Script keluar setelah 10 percobaan.

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 
fd0
sumber