NAS'ımı rsync kullanarak güneş santralini izleyen birkaç küçük sistemi yedeklemek için kullanıyorum. Harika çalışıyor. Şimdi NAS sürücüsünün tamamını yedeklemek istiyorum.
Her linux makinesi için alt dizinler var - bunlardan 8 tanesi.
Daha fazla şey öğrendiğim ve dışlamalarımı ayarladıkça, daha önce dışlamayı unuttuğum bir sürü artık görüyorum.
Geçmişte /lost+found
dizinleri dışladım ama düşünmedim /.trash-1000
ve şimdi birçoğu var.
Bunları
--exclude
listeye eklemek bile olsa,--delete
onları silmez; çünkü exclude, rsync programının onları tamamen atlamasını sağlar.
Robocopy / MIR'ın yaptığı gibi çalışmaz.
Öyleyse .Trash ile başlayalım ve aslında hariç tutmayı unuttuğum başkalarını bulursam cevabın bana yardımcı olacağını düşünüyorum.
Açıkçası, bir çözüm, sırayla her sunucu için tüm dizini silmek ve ardından yeni dışlama kümesiyle birlikte tam bir rsync çalıştırmak.
Ama en azından söylemek gerekirse bu çok iş.
Öyleyse sorum şu, NAS sürücüsünün tam bir rsync'ini yaptığımda, tüm .Trash-1000 klasörlerini dışlamanın genel bir yolu var mı? Bu işe yararsa, sürücüleri değiştirebilir ve temizleyici ile çalışmaya devam edebilirim.
Bunun gibi bir şey arıyorum:
--exclude="*.Trash*"
... böylece dizin yapısındaki konumlarından bağımsız olarak onları kopyalamazdı.
Gerçekten bunun rsync ile nasıl yapıldığını bilmek istiyorum ve dışlamaların eklenmesinin rsync'in bunları silmek yerine onları atlamasına nasıl neden olduğu sorununa bir çözüm arıyorum.
Alternatif olarak, rsyncs sırasında yapmak yerine, orijinal NAS sürücüdeki bu dizinleri nasıl arayacağımı ve yok edeceğimi gösteren bir cevabı memnuniyetle karşılarım.
rsync - Son zamanlarda dışlamalar listesine eklenen dizinleri veya dosyaları silme
--delete-before
ya Rsync - Man'da--delete-after
belirtildiği gibi ve / veya seçenekler . Bence atıfta bulunduğunuz Robocopy işlevi bir seçenek ve bence o ikisinden biri veya belki ikisinin de ihtiyacınız olan şeyi yapacağını - test etmek için basit. /PURGE
*.Trash*
zaten kopyalanan tüm dizinleri kaldırmak istiyorsun ?