Ubuntu işletim sisteminde veri kaybını önlemek ve sistem bütünlüğünü korumak amacıyla otomatik yedekleme scriptleri oluşturmak, sistem yöneticileri için vazgeçilmez bir
Ubuntu işletim sisteminde veri kaybını önlemek ve sistem bütünlüğünü korumak amacıyla otomatik yedekleme scriptleri oluşturmak, sistem yöneticileri için vazgeçilmez bir uygulamadır. Bu makalede, Bash scripting dilini kullanarak basit ancak etkili bir otomatik yedekleme scripti yazma sürecini adım adım ele alacağız. Script, kritik dosyaları sıkıştırılmış arşivler halinde uzak veya yerel bir konuma yedekleyecek ve cron job mekanizmasıyla düzenli olarak çalıştırılacaktır. Bu yaklaşım, kurumsal ortamlarda veri güvenliğini artırırken, manuel müdahaleyi minimize eder. Aşağıdaki talimatlar, Ubuntu 20.04 ve üzeri sürümlerde test edilmiş olup, her adımda somut örnekler ve açıklamalar içermektedir.
Otomatik yedekleme scripti yazmadan önce, sistemde gerekli araçların yüklü olduğundan emin olun. Ubuntu depolarından rsync, tar ve gzip gibi standart araçlar genellikle varsayılan olarak bulunur, ancak cron servisi etkinleştirilmelidir. Terminalde sudo apt update && sudo apt install rsync tar gzip cron komutunu çalıştırarak eksik paketleri yükleyin. Ardından, sudo systemctl enable cron ile cron servisini başlatın. Yedekleme hedefi olarak bir dizin belirleyin, örneğin /backup, ve bu dizine yazma izni verin: sudo mkdir -p /backup && sudo chown $USER:$USER /backup.
Yedeklenecek dosyaları tanımlayın. Tipik olarak /home, /etc ve /var/www gibi dizinler önceliklidir. Scriptte log dosyası tutmak için /var/log/backup.log konumunu kullanın. Bu hazırlık aşaması, scriptin hatasız çalışmasını sağlar ve olası sorunları önceden tespit etmenize yardımcı olur. Ayrıca, yedekleme sıklığını belirleyin: Günlük, haftalık veya aylık olarak cron ile ayarlanabilir. Bu adımlar tamamlandıktan sonra, script geliştirme aşamasına geçebilirsiniz.
Yeni bir dosya oluşturun: nano ~/yedekle.sh. Scriptin başına #!/bin/bash shebang satırını ekleyin. Ardından, tarih damgalı bir yedek klasörü oluşturun: DATE=$(date +%Y%m%d_%H%M%S); BACKUP_DIR="/backup/yedek_$DATE.tar.gz". Rsync ile dosyaları senkronize edin: rsync -avz /home/ /etc/ /var/www/ /tmp/backup_temp/. Sonra tar ile sıkıştırın: tar -czf $BACKUP_DIR -C /tmp/backup_temp/ . ve geçici dizini temizleyin: rm -rf /tmp/backup_temp. Log ekleyin: echo "$(date): Yedekleme tamamlandı: $BACKUP_DIR" >> /var/log/backup.log. Scripti çalıştırılabilir kılın: chmod +x ~/yedekle.sh. Bu temel yapı, 100 GB’a kadar veriyi dakikalar içinde yedekler ve disk alanını optimize eder.
Scripti güçlendirmek için hata yönetimi ekleyin. set -e ile kritik hatalarda durun. Eski yedekleri silmek üzere: find /backup -name "yedek_*.tar.gz" -mtime +7 -delete ile 7 günden eski dosyaları kaldırın. E-posta bildirimi için: mail -s "Yedekleme Raporu" [email protected] << EOF\nYedek tamamlandı: $BACKUP_DIR\nEOF. Disk alanı kontrolü yapın: df -h /backup | awk 'NR==2 {if ($5+0 > 90) {echo "Disk dolu!"; exit 1;}}'. Bu özellikler, scripti kurumsal standartlara uygun hale getirir ve bakım yükünü azaltır. Test için ./yedekle.sh çalıştırın ve logu inceleyin.
Cron tablosunu düzenleyin: crontab -e. Günlük yedek için 0 2 * * * /home/$USER/yedekle.sh satırını ekleyin (sabah 02:00). Haftalık için 0 3 * * 0 kullanın. Değişiklikleri kaydedin ve crontab -l ile doğrulayın. Cron loglarını grep CRON /var/log/syslog ile takip edin. Eski yedekleri yönetmek için ayrı bir cron job ekleyin: 0 4 * * 1 find /backup -name "yedek_*.tar.gz" -mtime +30 -delete.
Bakım için düzenli kontroller yapın: Scripti aylık test edin, rsync filtre dosyalarıyla (--exclude=/home/*.tmp) gereksiz dosyaları hariç tutun. Güvenlik açısından, scripti root olarak çalıştırmayın; sudoers ile sınırlı yetki verin. Bu yöntemle, sistem kesintilerinde veri kurtarma süresi saatlerden dakikalara iner. Potansiyel sorunlar: Disk dolu hatası için uyarı mekanizması kurun ve yedekleri başka bir diske taşıyın.
Sonuç olarak, Ubuntu’da bu otomatik yedekleme scriptini uygulayarak veri güvenliğinizi proaktif bir şekilde yönetebilirsiniz. Adımları takip ederek kendi ihtiyaçlarınıza uyarlayın, düzenli testler yapın ve logları analiz edin. Bu pratik çözüm, zaman tasarrufu sağlar ve kurumsal operasyonlarınızı güçlendirir. İlerleyen aşamalarda, bulut entegrasyonu gibi genişletmelerle daha da kapsamlı hale getirebilirsiniz.