Autor del tema #1
rsync ile hata kaynağını belirleme

Kullanım senaryosu
Bir sunucuya veya yerel makineye dosya senkronize ederken beklenmedik hatalar alırsınız: hatalı dosya izinleri, disk I/O problemleri, ağ zaman aşımları veya checksum uyuşmazlıkları gibi durumlar olabilir. Bu yazı, rsync’in hata mesajlarını nasıl okuyacağınızı, hangi seçeneklerle bağlamı daraltacağınızı ve olası kaynakları sistemde nasıl izleyebileceğinizi adım adım açıklar. Amacımız, sorunun kök nedenini hızlı ve güvenli şekilde tespit etmek; günlük akışını bozmadan ileriye dönük güvenilir bir eşitleme sağlamaktır.


1) Başlangıç düzeyi hata sınıflandırması
  • Hata mesajını ayrıntılı olarak yakalayın: rsync çalıştırırken -v, -vv veya -i gibi bayraklar ekleyin. Özellikle -a (archive) veya -a --progress ile çalışırken hangi dosya sırasında hata verdiğini görün.
  • Exit kodlarına göz atın: rsync’in genel hata durumları bulunduğu şekilde 0 başarı, 1 genel hata, 255’lik kritik durumlar gibi davranışlar gösterebilir. Ancak platform ve sürüme bağlı olarak farklılar olabilir; çıktının yanında dönen kodu da not edin.
  • Dosya bazlı hatalar: izin hataları (perm denied), silinemez dosyalar, okunamayan dosyalar gibi mesajlar hangi aşamada problem olduğunu gösterir.


2) Hata ayıklamak için önerilen bayraklar
  • -n veya --dry-run: Yüzeysel etkileri görmek için gerçekte hiçbir işlem yapmadan hangi dosyaların etkileneceğini gösterir; yeni hataların nereden geldiğini tahmin etmek için kullanışlıdır.
  • -v veya -vv: ayrıntılı çıktı verir; hangi dosya üzerinden hata bağlamını çevreleyen bilgileri sağlar.
  • --itemize-changes chuy: Hangi değişikliklerin yapılacağını satır satır belirtir; dosya adına göre neden hatayla karşılaşıldığını anlamaya yardım eder.
  • --log-file=FILE: Günlük dosyasına ayrıntılı hata mesajlarını yazdırır; uzun süreçlerde takip kolaylığı sağlar.
  • --delete-delay, --checksum, --size-only gibi modlar: Farklı eşitleme stratejileriyle hangi durumlarda hatanın ortaya çıktığını tekrardan test etmenizi sağlar.


3) Kaynak analizinde izlenen yollar
  • Ağ sorunları: rsync bir sunucuya bağlanıyorsa ağ gecikmeleri, paket kaybı veya bağlantı kesilmeleri hata üretebilir. Ping, traceroute veya mtr ile bağlantı stabilitesini kontrol edin. RSYNC_PORT veya SSH üzerinden donanım güvenlik duvarı engelleri de göz önünde bulundurulmalı.
  • Disk ve I/O: disk doluluğu, I/O bekleme veya bad sector gibi durumlar dosya okunamaması ya da yazılamaması gibi sonuçlar doğurur. iostat, vmstat veya sar komutlarıyla disk I/O ve CPU yükünü inceleyin.
  • İzinler ve sahiplik: hedef klasöre yazma izniniz yoksa veya dosya sahibi / grup uyumsuzluğu varsa hata oluşabilir. rsync’in --chmod ve --chown seçenekleriyle bu durumları tepeden düzeltmeyi deneyebilirsiniz.
  • Dosya kilitleri ve açık dosyalar: bazı durumlarda başka bir süreç dosyayı kilitleyebilir. lsof veya fuser ile kilitlenen dosyaları kontrol edin.
  • Sıkıştırma ve checksum davranışları: --checksum veya --inplace gibi seçenekler, bazı senaryolarda hatanın sonucunu değiştirebilir. Senkronizasyonun güvenilirliği için checksum davranışını nasıl değiştirdiğini test edin.


4) Pratik bir hata çözüm akışı
  • Adım 1: -n -vv ile hangi dosya veya klasörde hata olduğunu daraltın.
  • Adım 2: Hata veren dosya türünü inceleyin (metin / ikili, özel izinler, sembolik bağlar gibi).
  • Adım 3: İzinleri veya sahipliği düzeltin; gerektiğinde --chmod / --chown ile geçici olarak ayarlayın.
  • Adım 4: Ağ veya disk ile ilgili olası sorunları elimine edin (bağlantı stabil, disk dolu değil, I/O yoğunluğu düşük).
  • Adım 5: Sorun devam ederse log dosyasına kaydedin ve farklı bir hedef üzerinde test edin; yerel ve uzak konumlar arasında karşılaştırma yapın.


5) Örnek senaryo ve komutlar
  • Hata yakalama ve loglama:

rsync -av --progress --log-file=/tmp/rsync.log /kaynak/hedef/ 2>&1 | tee -a /tmp/rsync.log
  • Sorun giderme için dry-run:

rsync -avn --progress /kaynak/ /hedef/
  • İzin problemi için geçici çözüm:

rsync -av --chmod=ugo+rwx /kaynak/ /hedef/

Bu konuyu kendi deneyimlerinizle genişletirseniz, hangi hata mesajlarında hangi adımların işe yaradığını net olarak paylaşabiliriz. Özellikle ağ gecikmesiyle gelen hata mesajlarında hangi ipuçlarını hızlıca ayırt edebildiğinizi ve hangi kombinasyonların sizin için en güvenilir sonuç verdiğini anlatabilir misiniz?

Debes haber iniciado sesión para responder.

Usuarios que están viendo este tema (Total: 3, Miembros: 3, Invitados: 0)
Total: 3 (miembros: 3, invitados: 0)
0 citas seleccionadas