Обратно към блога
Януари 13, 2026Ръководства

Как да конфигурирате автоматични резервни копия на Linux сървър

Ръководство стъпка по стъпка за настройка на автоматизирани скриптове за архивиране с помощта на cron задачи за файлове и бази данни.

Как да конфигурирате автоматични резервни копия на Linux сървър

Редовните резервни копия са от съществено значение за защитата на вашите данни. Това ръководство ви показва как да настроите автоматични резервни копия за вашите файлове и бази данни с помощта на shell скриптове и cron задачи на вашия сървър Hiddence.

Създаване на скрипт за архивиране

Създайте скрипт за архивиране за вашите файлове:

bash
sudo nano /usr/local/bin/backup.sh
#!/bin/bash
BACKUP_DIR="/backups"
SOURCE_DIR="/var/www"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz $SOURCE_DIR
find $BACKUP_DIR -name "backup_*.tar.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/backup.sh

Настройване на Cron задача

Планирайте автоматични резервни копия с помощта на cron:

bash
sudo crontab -e
# Добавете този ред за ежедневно стартиране на архивиране в 2 часа сутринта
0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Скрипт за архивиране на база данни

Създайте скрипт за архивиране на MySQL база данни:

bash
sudo nano /usr/local/bin/db_backup.sh
#!/bin/bash
BACKUP_DIR="/backups/db"
DB_NAME="your_database"
DB_USER="root"
DB_PASS="your_password"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
mysqldump -u $DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/db_backup_$DATE.sql
gzip $BACKUP_DIR/db_backup_$DATE.sql
find $BACKUP_DIR -name "db_backup_*.sql.gz" -mtime +7 -delete
sudo chmod +x /usr/local/bin/db_backup.sh

Дистанционно съхранение на резервни копия

Копирайте резервни копия на отдалечен сървър с помощта на rsync или SCP:

bash
#!/bin/bash
BACKUP_DIR="/backups"
REMOTE_HOST="backup-server.com"
REMOTE_USER="backup"
REMOTE_DIR="/backups"
rsync -avz -e ssh $BACKUP_DIR/ $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/

Политика за запазване на резервни копия

Конфигурирайте запазването, за да съхранявате резервни копия за конкретен период:

bash
# Запазване на ежедневни резервни копия за 7 дни
find /backups -name "backup_*.tar.gz" -mtime +7 -delete

# Запазване на седмични резервни копия за 4 седмици
find /backups/weekly -name "backup_*.tar.gz" -mtime +28 -delete

# Запазване на месечни резервни копия за 12 месеца
find /backups/monthly -name "backup_*.tar.gz" -mtime +365 -delete

Най-добри практики за архивиране

  • Тествайте възстановяването на резервните копия редовно
  • Съхранявайте резервни копия на няколко места
  • Шифровайте чувствителните резервни данни
  • Следете лог файловете за грешки при архивиране
  • Документирайте процедурите си за архивиране
  • Настройте сигнали за неуспешни архивирания