مدیر پشتیبانگیری 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