1. Dosya adlarında özel karakterlerle ilgili sorunlar
Dosya adlarında özel karakterler var mı? Bu dosyaları yazdığınız dosya sistemine bağlı olarak, .
örneğin nokta ( ) ile önek eklemenize izin vermeyebilirler .
2. rsync modifikasyon süreleri ve webdav2 ile ilgili problemler
Ben webdav2 monte box.com dizinleri arasında dosya değiştirme süreleri yazma / izleme sorunu ile ilgili bir sorun açıklandığı bu blog yazısı geldi rsync
.
Bağlı dosya sisteminde sorun şu şekilde ortaya çıkıyor:
david@sydney:~/Pictures$ ls -l /mnt/box/bwca/08/09/IMG_3084.CR2
-rw-r--r-- 1 david david 12564061 Aug 14 16:08 /mnt/box/bwca/08/09/IMG_3084.CR2
david@sydney:~/Pictures$ ls -l 2012/08/09/IMG_3084.CR2
-rw-rw-r-- 1 david david 12564061 Aug 9 13:00 2012/08/09/IMG_3084.CR2
Aynı makalede bir çözüm gösterilmiştir:
$ rsync -avhP --size-only --bwlimit=64 2012/08 /mnt/box/bwca/
Bu kullanım için iyi bir yoldur rsync
, ancak dosyaları şimdi boyutlarına göre karşılaştırır, sağlama toplamlarını karşılaştırmaz.
3. davfs2 ile ilgili sorunlar (WebDAV)
Bu konuya rastladım: rsync via davfs2? sourceforge üzerinden WebDAV (davfs) forumunda. Birisi benzer bir durum hakkında bir çevrimiçi depolama sağlayıcısı kurmak ve WebDAV aracılığıyla bağlı depolama birimine rsync gerçekleştirmek için WebDAV kullanmak istedikleri benzer bir durum hakkında soruyordu. WebDAV'ın geliştiricilerinden (Werner Baumann) bu konu hakkında söyledikleri buydu .
Werner cevabından bir alıntı
davfs2 yalnızca tam dosyaları yükleyecektir. Rsync genellikle yaptığı artımlı şeyler yapamaz ve bu rsync çok verimli hale getirir.
davfs2 diskte yerel bir önbellek kullanır. Bu onu daha duyarlı hale getirecektir ve başvurunuz da bundan fayda sağlayacaktır. Ancak bunun için yerel disk alanına ihtiyacı var. Büyük bir önbellek boyutuna izin vermelisiniz, bu nedenle rsync çalışmalarının çoğunu yerel önbellekle yapabilir ve davfs2 rsync zaten bittiğinde dosyaların çoğunu arka planda yükler.
Werner aşağıdakileri önermeye devam ediyor
Bu durumda bu bir dezavantaj olabilir. Rsync uzak ana bilgisayardaki bir dosyayı okuduğunda, ilk önce davfs2 tarafından yerel önbelleğe aktarılmalıdır (zaten orada değilse). Bu, süreci gerçekten ve gereksiz yavaşlatabilir. Rsync yalnızca sizin durumunuzda gelişmiş bir kopyalama programı olarak çalıştığından, bunun yerine cp kullanmak daha iyi olabilir. cp yalnızca davfs2 dosya sistemindekilerden daha yeni olan dosyaları (= smartdrive) kopyalamak için seçeneklere (-u) sahiptir ve dosyaları okumasına gerek yoktur, ancak yalnızca mtime gibi dosya meta verilerini okur.
"Cp -pru directory / to / backup dav /" gibi bir komut işi yapabilir. Dosyaları indirmemeli (rsync'in yapabileceği gibi, ama emin değilim) (lütfen cp ve rsync kılavuzlarına bakın).
Seçenekler?
@Anthon'un önerdiği gibi, cp -u
dosyaları kopyalamak için yöntemi kullanabilirsiniz . Bu yöntemin yalnızca bir dosyanın boyutunu karşılaştırmada bir faktör olarak gördüğünü fark etmek, bu yüzden tamamen güvenilir değildir.
Dosyaları karşılaştırırken yalnızca değişiklik sürelerine bakan hiçbir şey kullanmamalısınız cp -pru
. Werner bu konuda nedenini açıklıyor :
mod zamanları ile ilgili alıntı
Bir davfs2 dosya sistemini çıkartıp daha sonra yeniden bağladığınızda, dosya süreleri sunucudaki saat bilgilerine göre değişmiş olabilir. Cp -pu ve rsync gibi araçlar, hangi dosyaların değiştiğini belirlemek için bu zamanlara güvenemez.
Bu nedenle, değişiklik sürelerini çevreleyen çeşitli sorunlar göz önüne alındığında, tamamen sağlama toplamlarını kullanan bir yaklaşım daha uygun gibi görünüyor:
$ rsync -avvz --omit-dir-times --checksum --human-readable --progress <local dir> <remote dir>
--max-size=250M --exclude '.*'
. Eminimcp
bunu yapmak için yapılabilir ... belki cp içine find çıktı borulama? Ama bunu nasıl yapacağımı henüz bilmiyorum. Bir çözüm bulursak deneyeceğimcp -ru
. Teşekkürler