Bash ile 7-30-90 Günlük Backup Rotation Sistemi

0 Yanıtlar 2 Görüntülenme
·
Katılımcılar
Konuyu Açan #0
Yedekleme stratejilerinde süreklilik ve düzen önemli. Özellikle büyük sistemlerde disk alanı ve yönetim kolaylığı açısından rotasyon sistemleri kullanmak şart. 7-30-90 günlük yedekleme rotasyonu, hem sık yedekleme hem de uzun vadeli arşivleme imkânı sunar. Bu yapıyı basit ve etkili bir Bash scriptiyle nasıl kurabilirsiniz, detaylara bakalım.

İlk olarak, günlük yedekleri belirli klasörlere kaydeden, ardından bu klasörleri zamanla temizleyen bir script tasarlamalısınız. Örneğin, her gün yedekleri /backup/daily/ altında tutabilir ve bu klasörleri 7 gün sonra, 30 gün sonra ve 90 gün sonra silmek üzere ayarlayabilirsiniz.

Örneğin, temel yapıda şu adımlar izlenir:

  1. Günlük yedekleri oluşturmak için, tarih bazlı isimlendirme kullanılır: backup-YYYYMMDD.tar.gz.
  2. Yedekleri ilgili dizine kaydederken, eski yedekleri de silmek için cron ile çalıştırılan scriptler yazılır.
  3. Silme işlemi, find komutuyla belirli süreyi aşan dosyaları tespit ederek yapılır.


Örnek komut:
KOD
1 find /backup/daily/ -name "backup-*.tar.gz" -mtime +7 -delete 


Bu, 7 günden eski yedekleri siler. Aynı mantıkla 30 ve 90 günlük rotasyonlar da kurulabilir.

İşte temel bir örnek script:

#!/bin/bash

YEDEK_DIZINI="/backup/daily"
TAR_FILE="$YEDEK_DIZINI/backup-$(date +%Y%m%d).tar.gz"
HEDEF_KLASOR="/hedef/dizin"

Yedekleme
tar -czf "$TAR_FILE" "$HEDEF_KLASOR"

Eski yedekleri silme
find "$YEDEK_DIZINI" -name "backup-*.tar.gz" -mtime +7 -delete
find "$YEDEK_DIZINI" -name "backup-*.tar.gz" -mtime +30 -delete
find "$YEDEK_DIZINI" -name "backup-*.tar.gz" -mtime +90 -delete


Burada, her gün bu script çalıştırıldığında yeni yedek eklenir ve belirli süreleri aşan eski yedekler otomatik temizlenir. Bu sayede, disk alanı verimli kullanılır ve uzun vadeli yedekleme ihtiyacınıza uygun bir sistem oluşturulmuş olur.

Bu yapıyı kullanırken dikkat edilmesi gereken en önemli nokta, yedeklerin bütünlüğünü ve erişilebilirliğini sağlamak için düzenli testler yapmak ve yedekleme sırasında oluşabilecek hataları loglamaktır. Ayrıca, yedekleme ve silme işlemlerini ayrı cron job'lar halinde planlamak, olası hataları minimize eder.

Sizlerin de bu tarz rotasyon sistemleri kurarken karşılaştığınız sorunlar veya önerileriniz varsa, paylaşmanızı bekliyorum. Bu sistemleri daha güvenli ve esnek hale getirmek için neler yapılabilir?

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi