backup-manager - простой и удобный инструмент резервного копирования из командной строки, который доступен в стандартных репозиториях большинства дистрибутивов Linux.
Особенности backup-manager
- Простое управление: конфигурационный файл легко читается и редактируется.
- Установил и забыл: можно запланировать периодический запуск через cron.
- Поддержка нескольких протоколов для удаленного резервного копирования: легко интегрируется с различными протоколами передачи данных, приложениями и облачными бэкендами (например, FTP, SCP, SSH-GPG, rsync, AWS S3) для передачи созданных архивов на список удаленных хостов.
- Поддержка резервного копирования баз данных: включает встроенную поддержку резервного копирования баз данных MySQL/MariaDB и PostgreSQL.
- Поддержка шифрования: поддерживает шифрование файлов на основе GPG во время резервного копирования.
Установка backup-manager в Linux
Установка в Debian, Ubuntu
1 | apt install backup-manager |
В процессе установки будет предложено ввести каталог, в котором вы хотите хранить созданные архивы резервных копий. Если выбранный каталог не существует, он будет создан автоматически при первом запуске backup-manager.
На следующем шаге вам будет предложено ввести все каталоги (разделенные пробелом), которые вы хотите сохранить в резервной копии. Рекомендуется, хотя и не обязательно, перечислить несколько подкаталогов одного и того же родительского каталога, а не вводить только родительский каталог.
Можно пропустить этот шаг и настроить список директорий позже, используя переменную BM_TARBALL_DIRECTORIES в конфигурационном файле.
Установка в CentOS 7
На CentOS/RHEL необходимо сначала включить репозиторий EPEL.
1 | yum install backup-manager |
Установка в CentOS 8 Stream
Данного пакета нет в репозитории, по этому установить его из исходников
Скачиваем последнюю версию backup-manager
1 | yum -y groupinstall "Development Tools" |
1 | wget https://github.com/sukria/Backup-Manager/archive/refs/tags/0.7.14.tar.gz |
1 2 3 4 | tar xvf 0.7.14.tar.gz cd Backup-Manager-0.7.14/ make install cp backup-manager.conf.tpl /etc/backup-manager.conf |
Настройка backup-manager
Основной конфигурационный файл для backup-manager - /etc/backup-manager.conf. Этот файл разделен на секции, в которых определены методы резервного копирования и связанные с ними переменные (или ключи), что делает backup-manager универсальным инструментом, который можно использовать в самых разных случаях.
В системах на базе Red Hat по умолчанию backup-manager не создает резервных копий каталогов. Если вы хотите включить резервное копирование, откройте файл /etc/backup-manager.conf в текстовом редакторе и определите следующие переменные.
1 2 3 4 5 | # where to store generated backup archives export BM_REPOSITORY_ROOT="/var/backup-manager" # a comma-separated list of directories to back up export BM_TARBALL_DIRECTORIES="/etc /home /var/log" |
Открываем файл /etc/backup-manager.conf редактируем следующие переменные.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | # Указываем метод(ы) резервного копирования, которые будут использоваться. # tarball: принимает список каталогов и создает соответствующие tarball. # mysql: архивирует базы данных MySQL с помощью mysqldump. #Для восстановления базы данных необходимо использовать тот же инструмент вручную. export BM_ARCHIVE_METHOD="tarball mysql" # Где хранить резервные копии. export BM_REPOSITORY_ROOT="/var/archives" # Следующая директива указывает backup-manager называть # сгенерированные файлы с именем каталога, в который была сделана резервная копия. export BM_TARBALL_NAMEFORMAT="long" # Определение типа сжатия для сгенерированных файлов. export BM_TARBALL_FILETYPE="tar.gz" # Каталоги, которые необходимо копировать. export BM_TARBALL_DIRECTORIES="/etc /home /var/log" # Исключение подкаталоги или расширения файлов. export BM_TARBALL_BLACKLIST="/var/log/syslog.log *.mp3 *.mp4" # Перечисление баз данных, резервную копию которых необходимо создать, разделяя их пробелами. export BM_MYSQL_DATABASES="mysql mybase wordpress dotclear phpbb2" # Имя пользователя MySQL. export BM_MYSQL_ADMINLOGIN="root" # Пароль MySQL. export BM_MYSQL_ADMINPASS="mypassword" # Добавление поддержки операторов DROP (необязательно). export BM_MYSQL_SAFEDUMPS="true" # Имя хоста или IP-адрес, где находится база данных (базы данных). export BM_MYSQL_HOST="localhost" # Порт, на котором прослушивается сервер MySQL. export BM_MYSQL_PORT="3306" # Тип сжатия (необязательно). export BM_MYSQL_FILETYPE="gzip" # Не архивировать удаленные хосты, а только localhost. BM_TARBALL_OVER_SSH="false" # Учетная запись пользователя для загрузки по SSH. export BM_UPLOAD_SSH_USER="root" # Абсолютный путь к закрытому ключу пользователя для беспарольного входа по SSH. export BM_UPLOAD_SSH_KEY="/root/.ssh/id_rsa" # Удаленные хосты (убедитесь, что вы экспортировали для них свой открытый ключ): export BM_UPLOAD_SSH_HOSTS="dev1 dev2 dev2" # Удаленное место назначения для загрузки резервных копий. Если он не существует, # этот каталог будет создан автоматически при первом запуске # запуска менеджера резервного копирования. export BM_UPLOAD_SSH_DESTINATION="/var/archives/backups/$HOSTNAME" |
Запуск backup-manager
Чтобы запустить backup-manager вручную, введите следующую команду. При необходимости можно добавить добавить флаг -v, чтобы просмотреть процесс.
1 | backup-manager |
Запуск backup-manager через cron
Определить полный путь до backup-manager можно командой ниже.
1 | which backup-manager |
Открываем редактирование настроек cron
1 | crontab -e |
И добовляем соотвествующие настрйоки
1 | 0 4 * * * /usr/sbin/backup-manager > /dev/null 2>&1 |
Ежедневно, в 4 утра.