Бэкапы RISH (резервное копирование). Настройка и работа с бэкапами

RISH создаёт резервные копии с помощью rclone. Актуальная версия rclone поддерживает более 70 облачных и сетевых хранилищ, поэтому можно использовать Яндекс Диск, WebDAV, S3, SFTP, Dropbox, Google Drive и другие поддерживаемые подключения. FTP также поддерживается rclone, но для резервных копий мы его не рекомендуем.
В RISH можно назначить разным сайтам разные подключения, создавать отдельные копии файлов и баз данных, шифровать архивы и запускать копирование по нескольким расписаниям.
Первоначальная настройка
Откройте пользовательское меню Midnight Commander клавишей F2 и выберите пункт Бэкапы (резервное копирование). Положение пункта может отличаться в зависимости от состава меню, поэтому ориентируйтесь на его название. Для быстрого запуска можно нажать заглавную клавишу B.
При первом подключении вы получите примерно такое сообщение:
Подключение по умолчанию не настроено (подключение 'ydisk' не найдено в rclone).
Файл списка архивируемых объектов не найден: /root/rish/backup_list_all
Что это значит?
Перед первым резервным копированием нужно настроить хотя бы одно подключение remote и создать список объектов. В список могут входить сайты, отдельные папки и отдельные базы данных.
Подключение к хранилищу
Подключений может быть несколько: для каждого объекта в списке резервного копирования можно указать собственный remote. Для начала создайте хотя бы одно подключение и выберите его подключением по умолчанию. Оно будет назначаться новым объектам при создании или обновлении списка.
Имя подключения по умолчанию и остальные параметры резервного копирования хранятся в файле /root/rish/rish_config.sh. Создать, изменить, удалить или выбрать подключение можно через пункт Создать/Выбрать подключение по умолчанию.
Пункт О подключении по умолчанию показывает выбранное подключение, папку сервера, доступную квоту, если хранилище поддерживает этот запрос, и размер папки с резервными копиями.
При первом запуске меню выглядит примерно так:

Выберите Создать/Выбрать подключение по умолчанию. Для Яндекс Диска в RISH предусмотрен отдельный пункт с упрощённой настройкой.

После выбора единственного пункта меню будет вызвана соответствующая команда rclone для создания или редактирования новых подключений (remote).
Обратите внимание, что далее уже идет мастер конфигурации rclone, который сильно отличается по интерфейсу от RISH.

Для создания нового подключения выберите n и следуйте подсказкам rclone. Параметры зависят от выбранного хранилища, поэтому для остальных типов подключений используйте официальную документацию rclone.
Подключение Яндекс Диска
Для Яндекс Диска используйте отдельный пункт Создать/Обновить подключение яндекс-диска: он проводит через авторизацию и создаёт подключение без ручного заполнения всех параметров rclone.
Для резервного копирования RISH нужен платный Яндекс Диск. Бесплатный Яндекс Диск имеет ограничения по объёму загрузок и при практической проверке не принимает резервные копии RISH.



Задайте понятное имя подключения латинскими буквами, например ydisk. После этого RISH покажет адрес страницы авторизации и одноразовый код.
Откройте в браузере адрес, который указан в терминале, войдите в нужный аккаунт Яндекса и введите полученный код. Не закрывайте терминал до завершения авторизации.


Проверьте, какому аккаунту выдаётся разрешение. На этой странице аккаунт можно сменить.
После подтверждения вернитесь в терминал. RISH завершит создание подключения и проверит его.

Создание и обновление списка объектов
После настройки подключения создайте список объектов резервного копирования. RISH найдёт сайты и папки в /var/www/*/www и сформирует файл /root/rish/backup_list_all.

Пункт Создать файл-список всех архивируемых объектов создаёт список заново. Если файл уже существует, RISH запросит подтверждение: повторное создание заменит текущий список и удалит внесённые вручную настройки, включая выбранные подключения, исключения и параметры шифрования.

При первоначальном создании всем найденным объектам назначается текущее подключение по умолчанию.
Для дальнейшей синхронизации используйте Обновить файл-список всех архивируемых объектов. Обновление сохраняет подключение, режим архивации, шифрование и исключения существующих строк, удаляет строки отсутствующих объектов и добавляет найденные новые объекты. Только новым объектам назначается текущее подключение по умолчанию.
Формат списка объектов
Основной список находится в /root/rish/backup_list_all. Это обычный текстовый файл: одна строка описывает один объект, а поля разделяются точкой с запятой.
user;name;type(site|folder|db);db;remote;archive(no|yes|crypto:<public_key>);exclude_list
Формат также указан в первой строке автоматически созданного файла. Вручную можно назначить объекту другое подключение, отключить его, включить шифрование или задать исключения.

-
userпользователь, где находится сайт
-
nameимя сайта или папки
-
typeтип объекта:
site— файлы сайта и его база,folder— только папка,db— только база данных -
dbимя базы данных
-
remoteимя подключения rclone, в которое будет загружена копия
-
archiveрежим архивации:
yes,noилиcrypto:с одним или двумя публичными ключами -
exclude_listсписок папок-исключений, которые не надо сохранять в бэкапе
Пример полной резервной копии сайта:
siteuser;example.test;site;example.test;ydisk;yes;administrator/cache,cache,tmp
Типовые исключения:
- Joomla:
administrator/cache,administrator/logs,cache,tmp; - Joomla с YOOtheme:
administrator/cache,administrator/logs,cache,tmp,templates/yootheme/cache; - Joomla с Akeeba Backup:
administrator/cache,administrator/logs,cache,tmp,administrator/components/com_akeeba/backup.
Папка, размер частей и срок хранения
По умолчанию резервные копии загружаются в папку backup_server выбранного подключения. Если одно хранилище используется несколькими серверами, задайте каждому серверу уникальное значение переменной server.
Основные параметры находятся в /root/rish/rish_config.sh:
server— папка этого сервера во внешнем хранилище;keeplast=5— количество последних каталогов с датами, сохраняемых для каждого пользователя в конкретном подключении;splitarchive=500m— размер одной части архива;DIR_BACKUP=/root/backup— локальный временный каталог.

Значение keeplast=5 не означает пять отдельных архивов каждого сайта. RISH хранит пять последних каталогов с датами для пользователя и подключения. Несколько запусков в течение одного дня попадают в один каталог даты, но получают разные отметки времени в именах файлов.
После успешного копирования RISH выполняет rclone cleanup. Для Яндекс Диска эта команда окончательно очищает корзину, поэтому удалённые ротацией копии нельзя будет восстановить из корзины Яндекса.
Шифрование резервных копий
Если в системе доступны age и age-keygen, в меню резервного копирования появляется пункт Управление шифрованием бэкапов. Он позволяет включить шифрование для выбранных строк списка.
Поле archive поддерживает три режима:
yes— создать обычную резервную копию;no— пропустить объект;crypto:<public_key>— зашифровать файлы и базу данных перед загрузкой.
Можно указать один или два публичных ключа age, ssh-ed25519 или ssh-rsa. Два получателя удобны, когда доступ к восстановлению нужен владельцу сервера и второму ответственному лицу.
В списке хранится только публичный ключ. Приватный ключ необходимо сохранить отдельно от сервера и резервного хранилища. Без него восстановить зашифрованную копию невозможно. После замены ключа старые копии по-прежнему требуют старый приватный ключ.
Зашифрованные архивы получают суффикс .age. Команда скачивания распознаёт их, а при восстановлении RISH предложит выбрать файл приватного ключа или вставить ключ.
Скачивание и восстановление
- Скачивание архива из внешнего хранилища в текущий каталог сервера
- Восстановление файлов и базы данных из скачанного архива
Перейдите в Midnight Commander в каталог, куда нужно сохранить архив, и выберите Скачать копию из бекапа на сервер. Затем последовательно выберите подключение, объект, дату и нужную копию.
В списке могут отображаться метки [SQL] для копии базы данных, [шифр] для зашифрованной копии и [ok] для полностью загруженного набора частей.

.end, скачает все части, автоматически соберёт исходный архив и при наличии скачает связанный архив базы данных. Зашифрованная копия останется в формате .age до этапа восстановления.
Архивировать/Разархивировать/Импорт DB. Можно восстановить сайт целиком, импортировать только базу данных или извлечь отдельные файлы. Для архива .age потребуется соответствующий приватный ключ.

Как копии хранятся во внешнем хранилище
Копии размещаются по схеме remote:server/user/date/, где remote берётся из строки списка, server — из /root/rish/rish_config.sh, user — владелец сайта, а date — дата запуска.
Архив файлов сайта имеет расширение .tar.gz, архив базы данных — .sql.gz. Для типа site рядом могут находиться оба архива. Зашифрованные копии дополнительно получают суффикс .age.
Перед загрузкой архив разбивается на части размером splitarchive, по умолчанию 500 МБ. Нумерация начинается с part-00. После загрузки обычных частей последняя часть загружается с дополнительным суффиксом .end. Этот суффикс служит признаком завершённой загрузки: если его нет, набор частей нельзя считать полной резервной копией.
Дата и время включаются в имя архива, поэтому несколько запусков в течение одного дня не перезаписывают друг друга. Примеры имён:
example.test_2026-08-23_03-15.tar.gz-part-00
example.test_2026-08-23_03-15.tar.gz-part-01.end
example.test_2026-08-23_03-15.sql.gz-part-00.end
example.test_2026-08-23_03-15.tar.gz.age-part-00.end
Штатный способ сборки — команда Скачать копию из бекапа на сервер. Она проверяет наличие .end, скачивает части в правильном порядке и создаёт готовый файл .tar.gz, .sql.gz или .age.
Ручная сборка пригодится, если штатную команду невозможно использовать. Склеивать нужно все части одного архива по порядку, начиная с part-00 и заканчивая частью с суффиксом .end. Сам суффикс .end является частью имени файла и не попадает внутрь архива.

cat example.test_2026-08-23_03-15.tar.gz-part-* > example.test_2026-08-23_03-15.tar.gz
Подставьте фактическое имя архива. Маска part-* включает и последнюю часть с суффиксом .end. Для зашифрованной копии итоговый файл должен сохранить расширение .age.
То же самое можно сделать в Midnight Commander:
- Скопируйте часть
part-00в новый файл с итоговым именем без суффикса-part-00. - Выберите следующую часть по номеру и нажмите
Shift+F5. - В качестве назначения укажите тот же итоговый файл и при запросе выберите
Добавить (Append). - Повторите операцию строго по порядку для всех частей, включая последнюю с суффиксом
.end.

Не объединяйте части разных дат, сайтов или типов архивов. После сборки зашифрованного файла .age его всё равно нужно расшифровать соответствующим приватным ключом.
Разные расписания резервного копирования
В автоматическом режиме backup2.sh можно передать путь к отдельному файлу списка. Так создаются несколько cron-заданий с разной периодичностью: например, ежедневные копии важных сайтов и еженедельные копии остальных.
Пример использования
0 5 * * * /root/rish/backup2.sh auto /root/rish/backup_list_daily
0 5 * * 0 /root/rish/backup2.sh auto /root/rish/backup_list_weekly
Если путь не указан, используется основной список из параметра backupall2:
/root/rish/backup2.sh auto
- дополнительные списки используют тот же семиполевой формат, что и основной;
- объект можно включать только в нужные расписания;
- если переданный файл отсутствует или недоступен, автоматическая архивация завершается с ошибкой.
Отдельные резервные копии баз данных
Для сайтов с часто изменяющимися данными можно чаще сохранять только базу данных. Для этого используется тип db.
Основной список можно оставить для еженедельной полной копии:
siteuser;example.test;site;example.test;ydisk;yes;
А отдельный список — для частых копий базы:
siteuser;example.test;db;example.test;ydisk;yes;
Пример расписания
0 5 * * 0 /root/rish/backup2.sh auto /root/rish/backup_list_weekly
0 */6 * * * /root/rish/backup2.sh auto /root/rish/backup_list_db
В примере полная копия создаётся раз в неделю, а база данных — каждые шесть часов.
- копии баз данных сохраняются в формате
.sql.gz; - в меню скачивания они помечаются как
[SQL]; - при включённом шифровании используется формат
.sql.gz.age; - строки
dbдля отдельных расписаний добавляются вручную; - если каталог сайта отсутствует, резервное копирование завершается с ошибкой, а не считается успешным.
Что проверить после настройки
- подключение по умолчанию открывается и показывает доступное хранилище;
- в
/root/rish/backup_list_allперечислены нужные сайты, папки и базы; - для каждого объекта правильно указаны
remote, режим архивации и исключения; - в хранилище достаточно свободного места, а значение
keeplastсоответствует вашей политике хранения; - cron запускает нужные списки в нужное время;
- тестовая копия завершается успешно и содержит часть с суффиксом
.end; - тестовое скачивание и восстановление выполнены до возникновения реальной аварии;
- приватные ключи от зашифрованных копий сохранены отдельно и доступны ответственным лицам.
Резервная копия считается проверенной только после успешного тестового восстановления.
- Руководство по установке RISH
- Резервное копирование (бэкапы)
- Установка/управление CMS/PMA
- Клонирование сайтов
- Авторизация на сервере по ключам SSH
- Что представляет собой RISH?
- Midnight Commander (MC) – курс выживания для владельцев веб-серверов
- Системные требования
- Статистика сайтов сервера
- У вас проблемы со входом на сервер?
- AlmaLinux видит не весь диск: почему и как исправить
- Сертификаты Минцифры на AlmaLinux и RISH: как проверить и установить на ваш сервер
- Почему мы не строим RISH на Ubuntu





