Bir uzak -> yerel senaryoda veri eşitlemek için rsync kullanan bir komut dosyası var. Rsync komutu çalıştırıldıktan hemen sonra, hata kodunun sıfıra eşit olup olmadığını kontrol edin. Sıfır ise, başka komutlar gerçekleştirilir. Ancak bu, rsync'in başarılı bir şekilde çalıştığını, ancak aslında herhangi bir değişiklik yapmamış olabileceğini dikkate almaz. Bu nedenle, eşit sıfır koşulu ne olursa olsun çalışır, bu biraz fazlalıktır.
rsync -aEivm --delete /path/to/remote/ /path/to/local/
if [ $? -eq 0 ]; then
# Success do some more work!
else
# Something went wrong!
exit 1;
fi
Gerçekleştirilen rsync komutuna göre herhangi bir değişiklik olup olmadığını kontrol etmek için bunu genişletmek için en iyi yaklaşım ne olurdu. -İ bayrağının stdout'a çıktı sağlayabildiğini okudum, ama bu koşullu bir bloğa nasıl yerleştirilebilir?
a=$("rsync command")
. Bu yürütülür rsync
komuta ve mağaza stdout
içinde a
. Daha sonra testleri yapabilirsiniza
| grep /
böyle bir şey ekleyebilir veya daha sonra grep'in çıkış durumunu kontrol edebilirsiniz, $?
çıktı yoksa 1 olmalıdır.
-v
bu yüzden zaten mesela sen Stdout'a gereken bilgileri ... aslında gönderilen dosyaların bir listesini vermektedir, içeride. Hiçbir şey değişmezse, bu sadece./
.