Резервные копии сайта: как настроить
Копия спасает, только если она свежая, лежит не на том же сервере и из неё уже пробовали восстановиться. Ниже — что копируют хостеры и чего в их копиях нет, как забрать копию к себе и как на VPS настроить ежедневную копию файлов и базы одним скриптом. Команды — для Ubuntu 24.04 и 26.04.
Содержание 11
Коротко
- На обычном хостинге копии делаются сами и бесплатно. Timeweb, Спринтхост и Reg.ru копируют сайт каждый день и хранят копии 30 дней, SpaceWeb копирует каждый день и хранит неделю, Beget — в среднем раз в 3–4 дня. Чего в этих копиях нет — в таблице ниже.
- Копия хостера — не единственная страховка. Раз в месяц и перед обновлением сайта скачивайте копию себе.
- На VPS копий может не быть вовсе. У Timeweb Cloud это платная опция, у SpaceWeb копии по умолчанию делаются только вручную. Если сервер удалят, на копии Beget и Timeweb Cloud рассчитывать нельзя.
- Своя копия на VPS — короткий скрипт и одна строка в расписании cron. Каждую ночь он сохраняет базу и файлы сайта и удаляет копии старше двух недель.
- Держите копию и вне сервера: на своём компьютере или в хранилище S3. В хранилище Beget гигабайт стоит 0,07 ₽ в день, трафик безлимитный. В «холодном» хранилище Timeweb Cloud — 1,1 ₽ в месяц, плюс 1,5 ₽ за каждый скачанный гигабайт.
- Проверьте, что из копии можно восстановиться, пока она не понадобилась. Как это сделать — показываем ниже.
Что должно быть в копии
Чтобы восстановить сайт целиком, нужны:
- все файлы сайта, включая скрытые — например, .htaccess, имя которого начинается с точки;
- база данных, если сайт работает на CMS: в ней лежат страницы, заказы, пользователи и настройки;
- настройки: на VPS — папка /etc/nginx, а на любом хостинге — задания cron, если они есть;
- почта, если она на том же хостинге. SpaceWeb и Reg.ru почту в копии хостинга не включают.
Полный список того, что может понадобиться, разобран в статье о переносе сайта: шаг 1 — составьте список.
Что копирует обычный хостинг
У всех пяти хостеров из нашего рейтинга копии делаются автоматически и входят в тариф. Различаются частота, срок хранения и мелочи, которые всплывают в момент восстановления. Названия хостеров ведут на их справку.
| Хостер | Как часто и сколько хранит | Что важно знать |
|---|---|---|
| Timeweb | каждую ночь, копии доступны 30 дней | Файлы, добавленные после копии, при восстановлении не удаляются. Перед восстановлением базы создайте новую с тем же именем и паролем; если база с таким именем есть, удалите её, сначала сохранив копию |
| Beget | в среднем раз в 3–4 дня, хранится 8–12 копий: при копии раз в 4 дня самой старой будет 36–48 дней | Файлы и базу восстанавливайте на одну дату. Перед восстановлением переименуйте папку public_html, например в public_html_old, и сохраните дамп текущей базы |
| Спринтхост | каждый день, хранятся 30 дней | В копию не попадают архивы .zip, .rar, .tar и .gz, логи и кеши. Файлы, которых нет в копии, при восстановлении остаются на месте. Если базы нет на аккаунте, восстановление выдаст ошибку — сначала создайте базу с тем же именем |
| SpaceWeb | каждый день; копии за последние 7 дней и на первое число этого и прошлого месяца | Почта не копируется. Если на каждый гигабайт тарифа приходится больше 20 000 файлов, копия делается не чаще раза в неделю |
| Reg.ru | каждую ночь, каждая копия хранится 30 суток | В копию не входят файлы больше 300 МБ, папка tmp, почта, задания cron и настройки панели. Базу перед восстановлением нужно создать в панели, можно пустую |
Восстановить сайт из копии хостера можно кнопкой в панели. Но перед этим сохраните то, что есть сейчас: копия вернёт сайт в прошлое, а заказы и заявки, пришедшие после неё, пропадут.
Как скачать копию хостера себе
- Timeweb: в разделе «Резервные копии» наведите курсор на копию и нажмите «Сохранить» — она ляжет в домашнюю папку. Скачайте её файловым менеджером или по FTP и удалите, чтобы не занимать место тарифа.
- Beget: ссылку на скачивание пришлют письмом, она же есть в истории заданий и действует 48 часов. Можно выгрузить копию архивом .tar.gz в корень аккаунта, но он займёт место тарифа.
- Спринтхост: кнопка «Выгрузить» кладёт архив в папку backups на аккаунте. Скачайте его файловым менеджером и удалите.
- SpaceWeb: в разделе «Бэкапы» кнопка «Получить бэкап» кладёт архив в папку аккаунта — на тарифе должно хватить свободного места.
- Reg.ru: на вкладке «Резервные копии» выберите домен и дату и нажмите «Сформировать архив». Ночная копия становится доступна для скачивания после 14:00 по Москве. Если файлов больше 150 000, отдельные файлы в копии не посмотреть — скачивайте архив целиком.
Своя копия на обычном хостинге
Своё расписание копий на обычном хостинге настраивать не обязательно. Достаточно раз в месяц и перед обновлением CMS или плагинов скачать сайт себе: файлы — архивом через файловый менеджер панели или по FTP, базу — в phpMyAdmin кнопкой «Экспорт». По шагам это расписано в статье о переносе: файлы и база данных.
Что копирует провайдер VPS
На VPS за копии чаще всего платят отдельно, а устроены они иначе: провайдер копирует сервер целиком.
| Провайдер | Цена и частота | Что важно знать |
|---|---|---|
| Beget | бесплатно, раз в несколько дней | Копии файловые и лежат в другом дата-центре. Если удалить сервер, копии доступны только через поддержку, и Beget их наличие не гарантирует. Восстановление всего сервера переустанавливает систему |
| Timeweb Cloud | 6 ₽ в месяц за гигабайт диска за каждую хранимую копию: одна копия диска 15 ГБ — 90 ₽; каждый день, раз в неделю или раз в 30 дней | Копии в том же дата-центре, что и сервер. При сбое на сервере или его удалении восстановиться из них не получится — так пишет сам провайдер. Восстановление стирает текущие данные |
| SpaceWeb | от 1,5 до 30 ₽ в день по тарифу: размер диска × 3 копии × 0,05 ₽ за гигабайт в день, на тарифах Турбо — 0,1 ₽; до трёх копий, автоматически — раз в три дня, неделю, две недели или месяц | По умолчанию копии только ручные, автоматические включают сами. Пока копия создаётся, сервер недоступен 10–15 минут. При отключении услуги копии удаляются |
| Reg.ru | 0,0072 ₽ в час за гигабайт копий — до 5,26 ₽ за гигабайт в месяц; вручную или каждый день | Копия хранится отдельно от сервера, из неё можно восстановить даже удалённый сервер |
Копия провайдера возвращает весь сервер к моменту копирования. Всё, что случилось после, — заказы, заявки, регистрации — пропадёт: Timeweb Cloud и SpaceWeb прямо пишут, что текущие данные при восстановлении удаляются. Beget предупреждает о другом: файлы таблиц MySQL не стоит восстанавливать, не остановив службу базы данных mysqld. Поэтому базу сайта стоит копировать отдельно и чаще — дампом, как в скрипте ниже. Дамп снимается на ходу, сайт останавливать не нужно.
Ещё у провайдеров есть снапшоты — снимок всего диска по запросу. У Beget он стоит 5 ₽ в месяц за гигабайт, у Timeweb Cloud бесплатный, но один на сервер и живёт 7 дней, а пока он есть, бэкап сервера создать нельзя. Снапшот удобно сделать перед рискованным обновлением, но регулярных копий он не заменит.
Своя копия на VPS: скрипт и cron
Скрипт ниже каждую ночь сохраняет базу и файлы сайта в одну папку и удаляет копии старше двух недель. Он рассчитан на сервер, настроенный по нашим инструкциям, но подойдёт к любому, если поправить пути.
Если на сервере стоит панель управления, копии можно настроить и в ней: в ispmanager и FASTPANEL есть резервное копирование, в том числе во внешнее хранилище. Какие бывают панели и сколько они стоят, разобрано в статье Панель управления хостингом и VPS.
Что понадобится
- Сервер на Ubuntu 24.04 или 26.04 и пользователь с правами sudo, как в статье Как настроить VPS с нуля. В примерах пользователь называется ivan — подставьте своего.
- Сайт в папке /var/www/example.ru, как в статье Как разместить сайт на VPS. Если сайт лежит в другом месте, поправьте пути в скрипте.
- Имя базы, пользователь и пароль, если сайт работает с MySQL или MariaDB. Они записаны в файле настроек CMS — где он лежит, показано в таблице статьи о переносе, шаг 4.
Команды ниже одинаково работают с MySQL и MariaDB: в Ubuntu 24.04 и 26.04 программа mysqldump есть в клиентах обеих.
Шаг 1. Уберите пароль базы в отдельный файл
Пароль, набранный прямо в команде, могут увидеть другие пользователи сервера в списке процессов. Документация MySQL называет такой способ небезопасным и советует файл с параметрами. Создайте его:
sudo nano /root/.backup-db.cnfВставьте три строки, подставив пользователя и пароль базы:
[client]
user=ПОЛЬЗОВАТЕЛЬ_БАЗЫ
password="ПАРОЛЬ"Кавычки вокруг пароля оставьте: без них знак # внутри пароля будет понят как начало комментария. Сохраните: Ctrl+O, Enter, Ctrl+X. Затем закройте файл от всех, кроме root:
sudo chmod 600 /root/.backup-db.cnfШаг 2. Напишите скрипт
sudo nano /root/backup-site.shВставьте текст, заменив example.ru, ИМЯ_БАЗЫ и ivan на свои:
#!/bin/bash
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
umask 077
SAJT=example.ru
BAZA=ИМЯ_БАЗЫ
KUDA=/home/ivan/backup
DATA=$(date +%Y-%m-%d-%H%M)
mkdir -p "$KUDA"
mysqldump --defaults-extra-file=/root/.backup-db.cnf \
--single-transaction --no-tablespaces --default-character-set=utf8mb4 \
"$BAZA" > "$KUDA/base-$DATA.sql"
gzip -f "$KUDA/base-$DATA.sql"
tar -czf "$KUDA/files-$DATA.tar.gz" -C /var/www "$SAJT"
find "$KUDA" -name '*.gz' -mtime +13 -delete
chown -R ivan:ivan "$KUDA"
echo "Копия готова: $DATA"Что делают строки:
- set -e останавливает скрипт на первой же ошибке. Если новая копия не получилась, старые не будут удалены.
- PATH — папки, в которых искать программы. Задаём их сами, чтобы скрипт работал одинаково и из терминала, и по расписанию.
- umask 077 — копии сможет читать только их владелец. В копиях пароли из настроек CMS и данные посетителей.
- SAJT, BAZA и KUDA — папка сайта внутри /var/www, имя базы и папка для копий.
- DATA — дата и время запуска, например 2026-10-01-0330. Из них складываются имена файлов, поэтому новая копия не затирает прежние.
- mysqldump сохраняет базу в файл .sql. Ключ
--defaults-extra-fileдолжен стоять первым — этого требуют и MySQL, и MariaDB.--single-transactionснимает согласованную копию таблиц InnoDB, не блокируя сайт; InnoDB — движок по умолчанию начиная с MySQL 5.5. Таблицы других движков, например MyISAM, могут измениться прямо во время дампа.--no-tablespacesизбавляет от права PROCESS, которого у пользователя сайта обычно нет.utf8mb4— та же кодировка, что и в статье о переносе. - gzip сжимает дамп. Это отдельная команда, а не одна цепочка с mysqldump: если дамп сорвётся, скрипт остановится, а не сохранит обрезанную базу как готовую копию.
- tar упаковывает папку сайта со всеми файлами, включая скрытые. Ключ
-C /var/wwwнужен, чтобы в архиве была только папка сайта, без пути к ней. - find удаляет копии, которым 14 суток и больше, — остаются последние две недели. Чтобы хранить месяц, поменяйте 13 на 29.
- chown отдаёт папку с копиями вашему пользователю, чтобы её можно было скачать: вход по SSH под root мы закрыли ещё при настройке сервера.
- echo пишет строку о том, что копия готова.
Если у сайта нет базы, удалите из скрипта команды mysqldump и gzip — команда mysqldump занимает три строки, переносы в ней сделаны обратной косой чертой.
Чтобы сохранять и настройки nginx, добавьте после строки с tar ещё одну:
tar -czf "$KUDA/nginx-$DATA.tar.gz" -C /etc nginxЕсли в папке сайта есть кеш, который всё время меняется, исключите его. Иначе tar может сообщить, что файл изменился во время упаковки, и скрипт остановится. Ключ --exclude ставят перед -C. Например, для папки wp-content/cache строка с tar будет такой:
tar -czf "$KUDA/files-$DATA.tar.gz" --exclude=wp-content/cache -C /var/www "$SAJT"Сохраните скрипт и разрешите запускать его только root:
sudo chmod 700 /root/backup-site.shШаг 3. Запустите скрипт вручную
sudo /root/backup-site.sh
ls -lh /home/ivan/backupСкрипт должен написать «Копия готова» с датой, а в папке появятся два файла: base-ДАТА.sql.gz и files-ДАТА.tar.gz. Если вместо этого появилась ошибка, найдите её в таблице в конце статьи.
Шаг 4. Поставьте скрипт в расписание
Откройте расписание root — скрипт должен работать от его имени, чтобы читать файл с паролем:
sudo crontab -eЕсли сервер ответит, что команды crontab нет, сначала поставьте cron: sudo apt install cron.
Расписание откроется в текстовом редакторе. Если команда сначала спросит, какой редактор использовать, выберите nano. Добавьте в конец строку:
30 3 * * * /root/backup-site.sh >> /var/log/backup-site.log 2>&1Сохраните файл. После выхода из редактора расписание вступит в силу само. Что важно в этой строке:
- Пять полей в начале — минута, час, день месяца, месяц и день недели. Звёздочка значит «любой». Эта строка запускает скрипт каждый день в 3:30 по времени сервера. Часовой пояс сервера покажет команда
timedatectl, а как его поменять — в статье Как настроить VPS с нуля. - После строки нажмите Enter. Каждая строка расписания должна заканчиваться переводом строки, иначе cron сочтёт расписание хотя бы частично сломанным.
- Знак процента в расписании не пишите: cron превращает его в перевод строки. Поэтому дата для имён файлов вычисляется внутри скрипта.
- Окончание
>> /var/log/backup-site.log 2>&1дописывает сообщения скрипта и ошибки в журнал. Без него cron отправляет их письмом владельцу расписания — а на сервере без настроенной почты такое письмо никто не прочитает.
Проверить, что строка на месте, можно командой sudo crontab -l. На следующее утро загляните в журнал:
sudo cat /var/log/backup-site.logВ нём должна быть строка «Копия готова» с датой. Если её нет, а выше — сообщение об ошибке, найдите его в таблице в конце статьи.
Где хранить копии
Копии на том же сервере пропадут вместе с ним — при поломке диска, взломе, удалении сервера или неоплаченном счёте. Поэтому хотя бы одна копия должна лежать где-то ещё.
На своём компьютере
Скачать всю папку с копиями можно одной командой с вашего компьютера — с Windows, Mac или Linux:
scp -r ivan@ВАШ_IP:/home/ivan/backup .Точка в конце — текущая папка на вашем компьютере. Команда каждый раз скачивает копии за две недели. Если нужна только свежая, удобнее забрать её мышкой в FileZilla или WinSCP — как их настроить, рассказано в статье Как подключиться к VPS по SSH.
В хранилище S3
Хранилище S3 — облачное место для файлов: сервер может каждую ночь сам отправлять туда копии. Оба хранилища ниже — в России: у Beget дата-центры в России, у Timeweb Cloud хранилище S3 пока только в Санкт-Петербурге. Это важно, если в базе есть данные посетителей: копии с ними тоже нужно хранить в России, подробнее — в статье Хостинг в России.
| Хранилище | Цена | 30 ГБ копий, наш расчёт |
|---|---|---|
| Beget | 0,07 ₽ за гигабайт в день, трафик безлимитный | около 63 ₽ в месяц |
| Timeweb Cloud, класс «Холодный» | 1,1 ₽ за гигабайт в месяц, исходящий трафик 1,5 ₽ за гигабайт | 33 ₽ в месяц плюс 1,5 ₽ за каждый скачанный гигабайт |
30 ГБ — это, например, ежедневные копии за месяц для сайта, архив которого весит 1 ГБ.
Бакет. Так называется «папка» хранилища. Создайте его в панели провайдера и не открывайте публичный доступ: у Beget публичная политика открывает все файлы бакета любому, кто знает адрес. Бакет Beget можно создать только в панели — из сторонних программ нельзя.
Ключи. У Timeweb Cloud ключи доступа — на вкладке «Дашборд» бакета. У Beget всё нужное — в блоке «Реквизиты доступа»: URL для подключения, имя бакета, Access key и Secret key. Имя бакета у Beget не совпадает с введённым при создании — берите его оттуда.
Программа. Копии в хранилище отправляет rclone, она есть в репозитории Ubuntu:
sudo apt install rclone
sudo nano /root/rclone.confВставьте в файл настройки, подставив свои ключи:
[backup]
type = s3
provider = Other
env_auth = false
access_key_id = ВАШ_ACCESS_KEY
secret_access_key = ВАШ_SECRET_KEY
endpoint = https://s3.twcstorage.ruЭто настройки из документации Timeweb Cloud. Для Beget в строку endpoint впишите URL для подключения из «Реквизитов доступа»: отдельной инструкции по rclone у Beget нет. Файл с ключами закройте от всех, кроме root, и проверьте подключение, заменив ИМЯ_БАКЕТА на своё:
sudo chmod 600 /root/rclone.conf
sudo rclone --config /root/rclone.conf ls backup:ИМЯ_БАКЕТАЕсли ключи, адрес или имя бакета неверны, rclone напишет ошибку. Если ошибки нет, а бакет пока пустой, команда ничего не выведет.
Строки в скрипте. Добавьте в /root/backup-site.sh перед строкой с echo две строки, тоже заменив ИМЯ_БАКЕТА на своё:
rclone --config /root/rclone.conf copy --s3-no-check-bucket "$KUDA" backup:ИМЯ_БАКЕТА/site
rclone --config /root/rclone.conf delete --min-age 30d backup:ИМЯ_БАКЕТА/siteПервая строка отправляет в хранилище новые копии, а те, что там уже лежат, пропускает. Ключ --s3-no-check-bucket запрещает rclone проверять и создавать бакет: у ключей может не быть на это прав. Вторая строка удаляет в хранилище копии старше 30 дней. Прежде чем добавлять её, проверьте, что она удалит. С ключом --dry-run rclone ничего не удаляет, а только пишет, какие файлы удалил бы:
sudo rclone --config /root/rclone.conf delete --min-age 30d --dry-run backup:ИМЯ_БАКЕТА/siteВ Timeweb Cloud вместо второй строки можно настроить правило в панели бакета: вкладка «Настройки», строка «Жизненный цикл», «Настроить», «Добавить правило». Укажите префикс site/, действие «Удалить объекты» и срок 30 дней.
Не меняйте copy на sync. Команда sync делает хранилище точной копией папки на сервере и удаляет в нём всё, чего на сервере уже нет. На сервере скрипт хранит копии за две недели — sync стёр бы в хранилище всё, что старше. А если копии на сервере пропадут, sync сотрёт и копии в хранилище.
Проверка. Запустите скрипт вручную и посмотрите, что лежит в хранилище:
sudo /root/backup-site.sh
sudo rclone --config /root/rclone.conf ls backup:ИМЯ_БАКЕТА/siteКлючи от хранилища лежат на сервере. Если сервер взломают, удалить можно будет и копии в хранилище. От этого защищает блокировка объектов в Timeweb Cloud — Object Lock. В режиме COMPLIANCE заблокированную копию до конца срока не удалит даже администратор, а в режиме GOVERNANCE основной пользователь хранилища удалить её может. Включённую блокировку уже не выключить, поэтому сначала прочитайте документацию. Способ проще — раз в неделю или месяц забирать свежую копию на свой компьютер.
Проверьте, что из копии можно восстановиться
Раз в месяц и после любой правки скрипта проверяйте свежую копию. В командах ниже вместо ДАТА подставьте дату и время из имени файла.
Целы ли архивы — если всё в порядке, обе команды ничего не выводят:
gzip -t /home/ivan/backup/base-ДАТА.sql.gz
tar -tzf /home/ivan/backup/files-ДАТА.tar.gz > /dev/nullДописан ли дамп до конца — последняя строка должна начинаться со слов «-- Dump completed on»:
zcat /home/ivan/backup/base-ДАТА.sql.gz | tail -n 1Надёжнее всего восстановить базу во временную. Если MySQL или MariaDB поставлены из пакетов Ubuntu, администратор базы входит через sudo без пароля — так написано в справке Ubuntu Server и в документации MariaDB:
sudo mysql -u root -e "CREATE DATABASE proverka"
zcat /home/ivan/backup/base-ДАТА.sql.gz | sudo mysql -u root proverka
sudo mysql -u root -e "SHOW TABLES" proverka
sudo mysql -u root -e "DROP DATABASE proverka"Если третья команда показала те же таблицы, что в базе сайта, копия рабочая. Последняя команда удаляет временную базу. Файлы проверьте так же — распакуйте во временную папку и посмотрите, что сайт на месте. Папку заведите в своей домашней, а не в /tmp: в Ubuntu 26.04 /tmp лежит в оперативной памяти, и большой архив займёт память сервера.
mkdir /home/ivan/proverka
tar -xzf /home/ivan/backup/files-ДАТА.tar.gz -C /home/ivan/proverka
ls /home/ivan/proverka/example.ru
rm -r /home/ivan/proverkaКак восстановить сайт из своей копии
Прежде чем восстанавливать, убедитесь, что сломан сам сайт, а не домен, оплата или сервер провайдера. Как это проверить, разобрано в статье Что делать, если хостинг лежит.
- Сохраните то, что есть сейчас: запустите
sudo /root/backup-site.sh. В имени копии стоит время, поэтому прежние копии не затрутся. Если нужна одна из самых старых копий, сначала скопируйте её из папки с копиями, например в /home/ivan, и дальше берите её оттуда: при каждом запуске скрипт удаляет копии, которым 14 суток и больше. - Отложите текущую папку сайта — не удаляйте, а переименуйте:
sudo mv /var/www/example.ru /var/www/example.ru-old. - Распакуйте файлы из копии:
sudo tar -xzf /home/ivan/backup/files-ДАТА.tar.gz -C /var/www. Под sudo tar вернёт файлам прежних владельцев и права. - Загрузите базу. Таблицы из копии заменят текущие: дамп сам удаляет их перед загрузкой.
zcat /home/ivan/backup/base-ДАТА.sql.gz | sudo mysql --defaults-extra-file=/root/.backup-db.cnf ИМЯ_БАЗЫОткройте сайт и проверьте его. Если всё работает, отложенную папку можно удалить: sudo rm -r /var/www/example.ru-old.
Кому что
- Визитка или блог на обычном хостинге — хватит копий хостера, если раз в месяц скачивать копию себе. Каждый день с хранением 30 дней копируют Timeweb, Спринтхост и Reg.ru.
- Интернет-магазин или сайт с заявками — важна частота: каждый день появляются заказы. Ежедневные копии хостера плюс своя копия перед каждым обновлением. У Beget копия бывает раз в 3–4 дня, поэтому перед обновлениями делайте копию по запросу — одно место под неё бесплатное.
- Сайт на VPS — свой скрипт из этой статьи, а копии провайдера — второй страховкой. У VPS от Beget копии бесплатные и лежат в другом дата-центре, у Timeweb Cloud они стоят 6 ₽ в месяц за гигабайт диска за каждую копию.
- Копии вне сервера — хранилище Beget, если копии приходится скачивать: трафик безлимитный. «Холодное» хранилище Timeweb Cloud дешевле за гигабайт, но скачивание платное.
Частые ошибки
| Что случилось | В чём обычно дело |
|---|---|
Access denied for user, в конце using password: YES | Неверный пользователь или пароль в /root/.backup-db.cnf. Сверьте их с файлом настроек CMS и проверьте, что пароль взят в кавычки |
Access denied for user, в конце using password: NO | Пароль не передан. Проверьте, что в /root/.backup-db.cnf есть строка password |
Access denied; you need (at least one of) the PROCESS privilege(s) | В команде mysqldump нет ключа --no-tablespaces |
Unknown database | Опечатка в имени базы в строке BAZA |
| Команды crontab нет | Поставьте cron: sudo apt install cron |
| Вручную скрипт работает, а по расписанию копий нет | Строка расписания не заканчивается переводом строки или в ней есть знак процента. Проверьте путь к скрипту и журнал /var/log/backup-site.log |
file changed as we read it, и скрипт остановился | Пока tar упаковывал папку, сайт менял в ней файлы — обычно это кеш. Исключите такую папку ключом --exclude |
| В папке лежит файл .sql без .gz | Дамп или сжатие оборвались, и скрипт остановился. Причина — в журнале. Такой файл удалите: дамп в нём может быть неполным, а старые копии скрипт удаляет только с окончанием .gz |
| rclone не может записать в бакет | Неверные ключи или имя бакета. У Beget имя бакета берите из «Реквизитов доступа». Без ключа --s3-no-check-bucket rclone пытается создать бакет и упирается в права |
| Копии в хранилище пропали | В скрипте sync вместо copy или delete запущен без --min-age |
| find удалил лишнее | Ключ -delete стоит не в конце строки: find выполняет условия по порядку, и -delete в начале удалит всё в папке. Перед правкой строки запускайте её с -print вместо -delete |
| После восстановления у хостера остались лишние файлы | Timeweb и Спринтхост не удаляют файлы, которых нет в копии. Перед восстановлением переименуйте папку сайта |
| Хостер не восстанавливает базу | У Спринтхоста и Reg.ru база должна заранее существовать в панели, у Timeweb — быть создана заново с тем же именем и паролем |
| VPS в SpaceWeb пропадает на 10–15 минут | Так бывает, пока создаётся копия. Выберите для автоматических копий ночное время |
| Сервер удалили, а копий провайдера нет | У Beget и Timeweb Cloud копии не переживают удаления сервера. Для этого и нужна своя копия вне сервера |
| В копии хостинга нет архивов или больших файлов | Спринтхост не копирует архивы .zip, .rar, .tar и .gz, Reg.ru — файлы больше 300 МБ. Храните такие файлы где-то ещё |
| Файлы бакета открываются по прямой ссылке у кого угодно | Включена публичная политика доступа. Отключите её в «Настройках доступа» бакета |
Что почитать дальше
- Как перенести сайт на другой хостинг без простоя — как скачать файлы и базу вручную и перенести их к новому хостеру.
- Как настроить VPS с нуля — пользователь с sudo, вход по ключу, фаервол и часовой пояс.
- Как подключиться к VPS по SSH — вход с Windows, Mac и Linux и передача файлов.
- Как разместить сайт на VPS — nginx, HTTPS и PHP на своём сервере.
- Ubuntu на VPS: какую версию выбрать и как обновлять — копия перед переходом на новую версию системы и что ещё меняется в Ubuntu 26.04.
- Хранилище S3 — где дешевле держать копии сайта, картинки и архивы вне сервера.
- Хостинг в России — почему копии базы с данными посетителей тоже должны лежать в России.
- Рейтинг VPS 2026 — цены серверов и у кого копии входят в цену.
- Что делать, если хостинг лежит — как найти причину, если сайт перестал открываться, и куда писать в поддержку.
- Панель управления хостингом и VPS — если копии и сайты на сервере удобнее настраивать в браузере.
- Сервер для базы данных — кто делает копии в облачных базах Timeweb Cloud, Beget и Selectel и как выгрузить базу PostgreSQL.
Проверено и обновлено: 02.10.2026