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

Etiketler

cron backup automation zamanlanmış görev