Cron Yedekleme Yöneticisi
Zamanlanmış yedekleme görevleri oluşturur ve yönetir.
Yayınlanma: 25.04.2024
Detaylı Bilgi
Bu script, zamanlanmış yedekleme görevleri oluşturur ve yönetir. Cron job'larını kullanarak günlük, haftalık veya aylık yedekleme işlemlerini otomatikleştirir.
Script Ne İşe Yarar?
Bu script, yedekleme görevlerini yönetir:
- Günlük yedekleme görevi oluşturur
- Haftalık yedekleme görevi oluşturur
- Aylık yedekleme görevi oluşturur
- Mevcut görevleri listeler
- Görevleri kaldırır
- Yedekleme scriptleri oluşturur
- Cron job'larını yapılandırır
Neden Kullanmalısınız?
Zamanlanmış yedekleme, veri güvenliği için kritiktir:
- Otomasyon: Manuel müdahale gerektirmez
- Esneklik: Farklı zamanlama seçenekleri
- Yönetim: Görevleri kolayca yönetin
Nasıl Kullanılır?
Adım Adım Kullanım Kılavuzu
1. Scripti Çalıştırın
chmod +x cron_backup.sh
./cron_backup.sh
2. Menüden Seçim Yapın
Script size bir menü sunacak:
- 1: Günlük yedekleme görevi oluştur
- 2: Haftalık yedekleme görevi oluştur
- 3: Aylık yedekleme görevi oluştur
- 4: Mevcut görevleri listele
- 5: Görevleri kaldır
3. Kaynak Dizini Belirtin
Yedeklenecek dizini girin.
Gereksinimler
Gereksinimler
- cron: Cron servisi çalışıyor olmalı
- tar: Sıkıştırma için
Kullanım Senaryoları
Kullanım Senaryoları
1. Otomatik Yedekleme
Düzenli yedekleme görevleri oluşturun.
2. Çoklu Yedekleme
Farklı dizinler için farklı zamanlama ile yedekleme yapın.
Örnekler
Kullanım Örnekleri
Örnek 1: Günlük Yedekleme
./cron_backup.sh
# Seçenek: 1
# Kaynak: /var/www/html Kod
#!/bin/bash
# Cron Backup Manager
SCRIPT_DIR="/opt/backup-scripts"
BACKUP_DIR="/backup"
mkdir -p "$SCRIPT_DIR"
mkdir -p "$BACKUP_DIR"
echo "Cron Backup Manager"
echo "==================="
echo ""
echo "1. Create daily backup job"
echo "2. Create weekly backup job"
echo "3. Create monthly backup job"
echo "4. List current backup jobs"
echo "5. Remove backup job"
echo ""
read -p "Select option: " OPTION
case $OPTION in
1)
read -p "Source directory: " SOURCE
CRON_TIME="0 2 * * *"
JOB_NAME="daily_backup"
;;
2)
read -p "Source directory: " SOURCE
CRON_TIME="0 3 * * 0"
JOB_NAME="weekly_backup"
;;
3)
read -p "Source directory: " SOURCE
CRON_TIME="0 4 1 * *"
JOB_NAME="monthly_backup"
;;
4)
echo "Current backup jobs:"
crontab -l | grep backup
exit 0
;;
5)
crontab -l | grep -v backup | crontab -
echo "Backup jobs removed"
exit 0
;;
esac
cat > "$SCRIPT_DIR/${JOB_NAME}.sh" << EOF
#!/bin/bash
DATE=\$(date +%Y%m%d_%H%M%S)
tar -czf "$BACKUP_DIR/${JOB_NAME}_\${DATE}.tar.gz" "$SOURCE"
find "$BACKUP_DIR" -name "${JOB_NAME}_*.tar.gz" -mtime +30 -delete
EOF
chmod +x "$SCRIPT_DIR/${JOB_NAME}.sh"
(crontab -l 2>/dev/null; echo "$CRON_TIME $SCRIPT_DIR/${JOB_NAME}.sh") | crontab -
echo "✓ Backup job created: $JOB_NAME"
echo "Schedule: $CRON_TIME"
echo "Script: $SCRIPT_DIR/${JOB_NAME}.sh"
Kullanım
chmod +x cron_backup.sh
./cron_backup.sh
# Mevcut işleri listele
crontab -l
Sorun Giderme
Sorun Giderme
Problem: Cron job çalışmıyor
Çözüm: Cron servisini kontrol edin:
sudo systemctl status cron