Ubuntu 16.04 rsync - NAS sunucusunun yedeklemelerini yaparken tüm .Trash dizinlerini dışlamasını söyleyebilir miyim?


1

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+founddizinleri dışladım ama düşünmedim /.trash-1000ve şimdi birçoğu var.

Bunları --excludelisteye eklemek bile olsa, --deleteonları 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


Yani *.Trash*zaten kopyalanan tüm dizinleri kaldırmak istiyorsun ?
Arkadiusz Drabczyk

@Arkadiusz, YES. Hepsini orjinalinde arayacak ve yok edecek bir emri memnuniyetle karşılarım. Bir cevap olarak göndermeye istekli olmanız durumunda, soruyu değiştireceğim. Rsync'i düzeltmese bile, acil sorunla ilgili gerçekten çok yardımcı olacaktır. TNX
SDsolar

Peki --delete-beforeya 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
Pezevenk Suyu BT

Evet, / arınma robokopi işleminde / mir ile belirtilir. Bunu yapmak istediğim şey bu. Ancak herhangi bir --delete anahtarı
--exclude

Yanıtlar:


0

İşte alternatifle konuşan bazı soru cevaplar:

Çıktıya dayalı dizinler nasıl silinir find?

Belirli bir ada sahip klasörleri kaldırma

“içeren” dosyaları bul + sil.

Ve bunlar arasında en yakın sorun için en iyi seçeneğimin, bunu diğer sistemlerin tam yedeklemelerini içeren dizinde yürüterek orijinal sürücüden çıkarmak olduğuna inanıyorum:

cd /mnt/full
sudo rm -rf `sudo find -type d -name '.Trash-1000'`

Ara ve yok et, hoo-rah!

Çalıştı ve gelecekte rsync'in daha hızlı çalışmasını sağlayacak.


Ancak bu, rsync hatasını çözmüyor.


Herhangi birisinin rsync'i --excludelisteye daha sonra eklediğim dizinleri silmesine neden olacak bir cevabı varsa , bu memnuniyetle kabul edeceğim cevabı olacaktır.


0

Cevabın birinci kısmına gelince: Nasıl Robocopy / MIR (/ PURGE) gibi çalışır?

Rsync’in bir

--delete-excluded

geçin.

Bu sorunu çözdü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.