Назад к блогу
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:00
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

Рекомендации по резервному копированию

  • Регулярно тестируйте восстановление резервных копий
  • Храните резервные копии в нескольких местах
  • Шифруйте конфиденциальные данные резервных копий
  • Мониторьте логи резервного копирования на наличие ошибок
  • Документируйте ваши процедуры резервного копирования
  • Настройте оповещения о сбоях резервного копирования