Bir klasörüm var a / ve uzak bir klasörüm A /. Şimdi Makefile'da böyle bir şey çalıştırıyorum:
get-music:
rsync -avzru server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
sync-music yaptığımda, önce sunucudan yerele tüm farklılıkları alır, sonra tam tersi, tüm farkları yerelden sunucuya gönderir.
Bu, yalnızca gelecekte yalnızca güncellemeler veya yeni dosyalar varsa çok iyi çalışır. Silinmeler varsa, hiçbir şey yapmaz.
Rsync'de istediğimi gerçekleştirmeye yardımcı olmak için --delete ve --delete-after seçenekleri var ama mesele şu ki, 2 yollu senkronizasyonda çalışmıyor.
Bir senkronizasyondaki sunucu dosyalarını silmek istersem, yerel dosyalar silindiğinde çalışır, ancak herhangi bir nedenle (aşağıda açıklanmıştır) sunucuda olmayan ancak yerel olarak var olan ve silinmiş bazı dosyalarım varsa, Bunları yerel olarak kaldırmak istiyorum ve sunucu kopyasını istemiyorum (olduğu gibi).
Şey, bağlamda 3 makinem var:
- masaüstü
- not defteri
- ev sunucusu
Bu nedenle, bazen, sunucuda bir not defteri senkronizasyonuyla silinen dosyalar olabilir, örneğin masaüstümle bir senkronizasyon çalıştırdığımda (silinen sunucu dosyalarının hala bulunduğu yerde) bu dosyaların silinmesini ve olmamasını istiyorum tekrar sunucuya kopyalandı.
Sanırım bu sadece bir veritabanı ve işlem takibi ile mümkün: P
Daha basit çözümler var mı? Teşekkür ederim.