Mövzunu Açan
#1
rsync ile rapor oluşturma
İş akışında her gün yapılan rsync işlemlerinin ardından güvenilir ve kolayca paylaşılabilir bir rapor almak çoğu sistem yöneticisi için çok değerli olur. Bu konuda iki ana yaklaşım öne çıkıyor: manuel çıkarımlar üzerinden rapor üretmek ve rsync'in kendi çıktı zeminini kullanarak yapılandırılmış bir rapor elde etmek. Aşağıda adım adım pratik bir yol haritası ve örnekler bulacaksınız.
1) rsync çıktısını yapılandırılmış biçime dönüştürmek
rsync -avh --itemize-changes /kaynak/ /hedef/ > /log/rsync_$(date +%F).log 2>&1
Bu çıktıdan hangi dosyaların yeni, değişmiş veya silindiğini net biçimde çıkarmak mümkün olur.
2) rapor içeriğini belirlemek ve formatlamak
3) otomatik rapor üretimi için basit bir örnek akış
4) güvenlik ve doğruluk
5) örnek basit betik (gerçek kodu kendi ortamınıza göre uyarlayın)
Bu yaklaşım, rsync ile yapılan yedeklemeler/klonlar sonrasında net bir rapor elde etmeyi sağlar. Blokları genişletmek veya belirli bir formatta (JSON/CSV) otomatik rapor üretimini istediğiniz şekilde uyarlamak için hangi sistem araçlarını kullandığınızı belirtirseniz, daha hedefli bir örnek çıkartayım. Bu yönteme ilişkin deneyimlerinizi veya kullandığınız araç zincirini paylaşır mısınız?
İş akışında her gün yapılan rsync işlemlerinin ardından güvenilir ve kolayca paylaşılabilir bir rapor almak çoğu sistem yöneticisi için çok değerli olur. Bu konuda iki ana yaklaşım öne çıkıyor: manuel çıkarımlar üzerinden rapor üretmek ve rsync'in kendi çıktı zeminini kullanarak yapılandırılmış bir rapor elde etmek. Aşağıda adım adım pratik bir yol haritası ve örnekler bulacaksınız.
1) rsync çıktısını yapılandırılmış biçime dönüştürmek
- rsync çalıştırılırken -avh --delete gibi seçeneklerle dosya değişikliklerini görülebilir bir çıktı elde edilir. Bu çıkışı daha sonra işlemek için günlük dosyası olarak saklamak veya doğrudan bir rapora dönüştürmek mantıklıdır.
- Özellikle -I veya --itemize-changes seçeneği ile değişikliklerin ayrıntılı satırlarını daha makul bir şekilde yakalayabiliriz. Örneğin:
rsync -avh --itemize-changes /kaynak/ /hedef/ > /log/rsync_$(date +%F).log 2>&1
Bu çıktıdan hangi dosyaların yeni, değişmiş veya silindiğini net biçimde çıkarmak mümkün olur.
2) rapor içeriğini belirlemek ve formatlamak
- Değişiklik türleri: added, modified, deleted, unchanged, error gibi kategorilere ayırabilirsiniz.
- Özet bölümünde şu bilgiler yararlı olur:
- Toplam dosya sayısı, değişen dosya sayısı
- Yeni eklenen dosyaların listesi
- Değişen dosyaların toplam boyut)
- Hata veya uyarılar
- Rapor formatı olarak plain text veya JSON/CSV tercih edilebilir. JSON daha sonra otomatik tüketim için uygundur; CSV ise insanlar için okunabilirliği korur.
3) otomatik rapor üretimi için basit bir örnek akış
- Günlük cron görevi ile rsync çalışır ve çıktı loglanır.
- Log dosyasını analiz eden küçük bir betik (ör. bash veya Python) çalıştırılır:
- --itemize-changes çıktısını parse eder, değişiklikleri kategorilere ayırır.
- Özet ve ayrıntıları içeren bir rapor üretir.
- Raporu e-posta ile gönderir veya bir paylaşımlı dizine yükler.
4) güvenlik ve doğruluk
- Logların değiştirilmesini engellemek için log dosyalarını yalnızca okunabilir hale getirin.
- rsync çıktısında sezgisel olmayan değişiklikler veya hatalar için uyarı koşulları belirleyin.
- İki yönlü senkronizasyon gerekiyorsa --dry-run ile test etmekten vazgeçmeyin.
5) örnek basit betik (gerçek kodu kendi ortamınıza göre uyarlayın)
- Bash ile başlangıç seviyesi bir rapor üretimi:
- rsync -avh --itemize-changes /kaynak/ /hedef/ > /log/rsync_$(date +%F).log 2>&1
- awk ile temel özet:
- grep \">\" /log/rsync_$(date +%F).log | wc -l
- grep \"^>\" /log/rsync_$(date +%F).log > /log/added_$(date +%F).log
- Bu basit parçalar, günlükten değişiklik listesini çıkarmanızı sağlar ve daha ayrıntılı bir özet için genişletilebilir.
Bu yaklaşım, rsync ile yapılan yedeklemeler/klonlar sonrasında net bir rapor elde etmeyi sağlar. Blokları genişletmek veya belirli bir formatta (JSON/CSV) otomatik rapor üretimini istediğiniz şekilde uyarlamak için hangi sistem araçlarını kullandığınızı belirtirseniz, daha hedefli bir örnek çıkartayım. Bu yönteme ilişkin deneyimlerinizi veya kullandığınız araç zincirini paylaşır mısınız?
