مدیر پشتیبان‌گیری Cron

وظایف زمان‌بندی شده پشتیبان‌گیری را ایجاد و مدیریت می‌کند.

منتشر شده: 2024/04/25

کد

#!/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"

نحوه استفاده

chmod +x cron_backup.sh
./cron_backup.sh

# List current jobs
crontab -l

برچسب‌ها

cron backup automation scheduled task