August 05, 2026 · by CLIQHOST
Одна из самых распространённых ошибок администраторов серверов — откладывать настройку резервного копирования. «Сделаю завтра» слишком легко превращается в «вчера я потерял все данные». На Linux VPS автоматического резервного копирования по умолчанию не существует — его необходимо настроить вручную. Хорошая новость: это проще, чем кажется, и данное руководство объяснит всё шаг за шагом.
Прежде чем перейти к технической части, разберёмся, почему ручные бэкапы не являются надёжным решением:
rm -rf или неудачное обновление могут уничтожить критически важные данные за секунды.Надёжная стратегия резервного копирования следует правилу 3-2-1: 3 копии данных, на 2 разных носителях, одна из которых — удалённая (off-site).
Для этого руководства используются стандартные инструменты Linux, доступные на любом дистрибутиве (Ubuntu, Debian, CentOS, AlmaLinux):
tar — для архивирования директорийrsync — для эффективной инкрементальной синхронизацииcron — для автоматического планирования задачmysqldump — для экспорта баз данных MySQL/MariaDBrclone — для автоматической загрузки в облако (Google Drive, S3, Backblaze)Подключитесь к VPS через SSH и создайте организованную структуру:
mkdir -p /backup/{files,databases,logs}
chmod 700 /backup
Директория /backup будет содержать:
- /backup/files — архивы файлов сервера
- /backup/databases — дампы MySQL
- /backup/logs — журналы операций резервного копирования
tarСоздайте файл /usr/local/bin/backup-files.sh:
nano /usr/local/bin/backup-files.sh
Добавьте следующее содержимое:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/backup/files"
SOURCE_DIRS="/var/www /etc /home"
LOG="/backup/logs/files-$DATE.log"
RETENTION_DAYS=7
echo "[$(date)] Начало резервного копирования файлов..." >> "$LOG"
tar -czf "$BACKUP_DIR/files-$DATE.tar.gz" $SOURCE_DIRS 2>> "$LOG"
if [ $? -eq 0 ]; then
echo "[$(date)] Резервная копия создана: files-$DATE.tar.gz" >> "$LOG"
else
echo "[$(date)] ОШИБКА при создании резервной копии!" >> "$LOG"
fi
# Удаление архивов старше $RETENTION_DAYS дней
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete
echo "[$(date)] Очистка старых архивов завершена." >> "$LOG"
Сохраните файл и сделайте его исполняемым:
chmod +x /usr/local/bin/backup-files.sh
Что делает этот скрипт:
- Архивирует директории /var/www, /etc и /home — там хранятся сайты, конфигурации и пользовательские данные
- Сохраняет архив с датой в имени (например: files-2025-01-15.tar.gz)
- Автоматически удаляет архивы старше 7 дней для экономии места
- Записывает каждую операцию в лог-файл
Создайте /usr/local/bin/backup-databases.sh:
#!/bin/bash
DATE=$(date +%Y-%m-%d)
BACKUP_DIR="/backup/databases"
DB_USER="root"
DB_PASS="ваш_пароль_mysql"
LOG="/backup/logs/db-$DATE.log"
RETENTION_DAYS=7
echo "[$(date)] Начало резервного копирования баз данных..." >> "$LOG"
# Экспорт каждой базы данных отдельно
for DB in $(mysql -u"$DB_USER" -p"$DB_PASS" -e "SHOW DATABASES;" 2>/dev/null | grep -Ev "(Database|information_schema|performance_schema|sys)"); do
mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB" 2>> "$LOG" | gzip > "$BACKUP_DIR/$DB-$DATE.sql.gz"
echo "[$(date)] Резервная копия создана для: $DB" >> "$LOG"
done
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +$RETENTION_DAYS -delete
echo "[$(date)] Очистка старых дампов завершена." >> "$LOG"
Совет по безопасности: Не храните пароль MySQL в открытом виде в скрипте. Используйте файл
~/.my.cnfс ограниченными правами доступа:
ini [client] user=root password=ваш_пароль_mysql
Затем выполните:chmod 600 ~/.my.cnfи удалите переменныеDB_USER/DB_PASSиз скрипта.
Сделайте скрипт исполняемым:
chmod +x /usr/local/bin/backup-databases.sh
rsync (опционально, но рекомендуется)Если у вас есть второй сервер или удалённое хранилище, rsync идеально подходит для быстрой синхронизации — он передаёт только изменённые файлы:
rsync -avz --delete /backup/ user@remote-server:/external-backup/
Эту команду можно добавить в отдельный скрипт или напрямую в crontab.
cronИменно этот шаг превращает ручные резервные копии в автоматические. Откройте crontab от имени root:
crontab -e
Добавьте строки:
# Резервное копирование файлов — ежедневно в 02:00
0 2 * * * /usr/local/bin/backup-files.sh
# Резервное копирование баз данных — ежедневно в 03:00
0 3 * * * /usr/local/bin/backup-databases.sh
Объяснение синтаксиса cron: минута час день_месяца месяц день_недели команда
0 2 * * * — каждый день в 02:000 3 * * * — каждый день в 03:00Бэкапы запланированы на ночное время, чтобы не влиять на производительность сервера в часы пик.
rcloneЧтобы соблюдать правило 3-2-1, резервные копии должны храниться и на удалённом ресурсе. rclone поддерживает десятки облачных провайдеров.
Установка:
curl https://rclone.org/install.sh | sudo bash
Интерактивная настройка (например, для Backblaze B2 или Google Drive):
rclone config
Следуйте инструкциям мастера настройки, выберите провайдера и выполните аутентификацию. Затем добавьте в crontab:
# Загрузка бэкапов в облако — ежедневно в 04:00
0 4 * * * rclone sync /backup/ backblaze:vps-backup-bucket/ --log-file=/backup/logs/rclone.log
Резервная копия, которую никто никогда не проверял, — это иллюзия безопасности. Ежемесячно проверяйте:
Существование и целостность архивов:
bash
tar -tzf /backup/files/files-$(date +%Y-%m-%d).tar.gz | head -20
Возможность восстановления дампов MySQL:
bash
gunzip -c /backup/databases/имябазы-$(date +%Y-%m-%d).sql.gz | mysql -u root -p test_restore
Отсутствие ошибок в логах:
bash
grep -i error /backup/logs/*.log
Периодически проверяйте, сколько места занимают резервные копии:
du -sh /backup/*
df -h /
Если место на VPS ограничено, сократите RETENTION_DAYS до 3–5 дней и используйте облако для долгосрочного хранения.
~/.my.cnf или переменные окружения.Настройка автоматического резервного копирования на Linux VPS не требует дорогостоящих или сложных решений. С помощью tar, mysqldump, cron и опционально rclone можно менее чем за час создать надёжную систему, которая будет ежедневно защищать ваши данные.
Главное — не откладывать: каждый день без резервной копии — это день, когда вы рискуете потерять всё.
Если вы управляете VPS и хотите сосредоточиться на своём бизнесе, а не на ручном управлении бэкапами, CLIQHOST предлагает VPS SSD с опциями управляемого резервного копирования и круглосуточной технической поддержкой.
Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."