Перейти к содержимому

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

23 августа 2026
Актуальная инструкция для RISH 2.9.3: настройка хранилища, создание резервных копий, шифрование, расписание и восстановление.
Резервное копирование в 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 предложит это сделать.

Создание и обновление списка объектов

После настройки подключения создайте список объектов резервного копирования. 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] для полностью загруженного набора частей.

RISH проверит наличие завершающей части .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:

  1. Скопируйте часть part-00 в новый файл с итоговым именем без суффикса -part-00.
  2. Выберите следующую часть по номеру и нажмите Shift+F5.
  3. В качестве назначения укажите тот же итоговый файл и при запросе выберите Добавить (Append).
  4. Повторите операцию строго по порядку для всех частей, включая последнюю с суффиксом .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.