Can Rsync, dosyaların içeriğini senkronize edilmeden önce doğrulamak üzere yapılandırılabilir. Checksum'u duydum, ama sağlama toplamının sadece bir örneklem olduğunu biliyordum. Bir dosya sadece içerik değiştiyse ve zaman damgası değilse, rsync modlarından herhangi biri ile yapmanın bir yolu varsa, aktarmak istiyorum. Benim senaryoda, her hafta örnek sample.text dosyası oluşturulacak ve her hafta oluşturulduğu için, zaman damgası açıkça değişeceğinden, yalnızca sample.text içeriği değiştirildiyse, uzak bir sunucu ile senkronize etmek istiyorum. Ancak aktarımı sadece içerik değişikliğinde istiyorum.Senkronizasyondan önce içeriği doğrulamak rsync
cevap
Evet, kılavuzu okumalısınız.
$ man rsync | grep "\--checksum"
-c, --checksum skip based on checksum, not mod-time & size
Rsync oldukça karmaşıktır. Man sayfasıyla test edilmesini ve test verileri ile deney yapılmasını öneriyorum, uzaktan önemli bir şey için kullanmadan önce.
Çoğu zaman, insanlar rsync -ac source dest
'u kullanır.
$ man rsync | grep "\--archive"
-a, --archive archive mode; same as -rlptgoD (no -H)
Ve bu -rlptgoD
çöp gelir: recursive
, copy symlinks as symlinks
, preserve permissions
, preserve times
, preserve group
, preserve owner
, preserve device files (super-user only)
, preserve special files
ve skip based on checksum, not mod-time & size
-c
veya --checksum
aradığınız ve Zannını ne gerçekten Sadece mtime ve boyut örnekleri yanlıştır.
+ adam sayfası ve test verileri ile deneme ile _cuddle zamanı için - Son derece iyi tavsiye –
rsync man sayfasındaki --checksum
seçeneğine bakın.
Ayrıca, içerik değişiminin de boyut değişikliği anlamına geldiğinden emin olursanız --size-only
seçeneği daha hızlı bir seçim olacaktır.
Örnek:
#!/bin/bash
echo > diff.txt
rsync -rvcn --delete /source/ /destination/ > diff.txt
second_row=$(sed -n '2p' diff.txt)
if [ "$second_row" = "" ]; then
echo there was no change
else
echo there was change
fi
Bu kodun neden işe yaradığı konusunda gerçekten bir açıklama eklemelisiniz - aynı zamanda kodun kendisinde de yorum ekleyebilirsiniz - mevcut haliyle, Sorunun cevabını çözmek için ne yaptığınızı anlamak için topluluğun geri kalan kısmına yardımcı olabilecek herhangi bir açıklama yapmayın. – ishmaelMakitla
Hiçbir değişiklik yoksa, rsync'nin gerçek modda diff.txt ikinci satırı boş, sed bu ikinci satırı inceleyin. – oldbowman
- 1. İçeriği kaydetmeden ve bağlamdan kaldırmadan önce varlıklar doğrulanıyor
- 2. önle rsync
- 3. Senkronizasyondan hemen sonra iPod Kitaplığından şarkı yükle
- 4. rsync hatası: rsync protokolü veri akışında hata (kod 12)
- 5. rsync rsync üzerinde bir sağlama toplamı nasıl yapılır
- 6. SSH erişimi olmayan Rsync
- 7. rsync çıkısındaki dizinleri gösterme
- 8. Neden gulp-rsync konuşmuyor?
- 9. Rsync kullanma ve
- 10. Android için Rsync oluşturun
- 11. rsync delete option çalışmıyor
- 12. Bash komut dosyası rsync: rsync: link_stat (blah) başarısız oldu: Böyle bir dosya veya dizin yok (2)
- 13. rsync, değişmeyen dosyaların zaman damgalarını nasıl korur?
- 14. Sadece gizli dosyaları kopyalamak için rsync kullan
- 15. Pencereden önce yangın işlevi, oryantasyondaki içeriği değiştirir mi?
- 16. Ziyaret edilen içeriğin içeriği değiştirilemez: sahte öğelerden önce
- 17. rsync --stats çıkışını GB'ye dönüştürme?
- 18. Sadece rsync dosyaları güncelleştirildi güncelleştirildi
- 19. içeriği
- 20. Öğeleri doğrulamak ItemsControl
- 21. URLRegularExpression URL'yi doğrulamak için
- 22. Raylar - Derneğin Varlığını Doğrulamak?
- 23. rsync sadece belirli klasörleri kopyalamak için
- 24. rsync dağıtımı ve dosya/dizin izinleri
- 25. rsync işlemleri atomik olarak dosya düzeyinde mi?
- 26. Her zaman değişen RSync tek (arşiv) dosyası
- 27. xHTML 1.0 sıkı - Doğrulamak iFrames
- 28. raylar paypal bildirimi doğrulamak Japonca
- 29. MVC değil doğrulamak boş dize
- 30. Android İndirme HTML içeriği
rsync'in man sayfasını denediniz mi? -c, --checksum Bu, dosyaların değişip değişmediğini ve aktarım gerektirip gerektirmediğini rsync kontrol eder. Bu seçenek olmadan, rsync bir "hızlı kontrol" kullanır (varsayılan olarak), her dosyanın boyutunun ve son değişiklik zamanının gönderici ve alıcı arasında eşleşip eşleşmediğini kontrol eder. –