Резервное копирование на CentOS с помощью 7-zip

Систем резервного копирования достаточно много от простого FsBackup до комплексного решения Bacula. Но если нужно создать архивную копию с шифрованием и паролем, то приходится использовать GPG и ключи. Есть более простое решение, иногда оно лучше подходит для простого копирования папок с файлами в архив с паролем.

Речь пойдет об архиваторе 7-zip.

В Ubuntu эта программа идет в стандартных репозитариях. Для его установки в CentOS необходимо подключить epel репозитарий:

yum install epel-release

Далее :

yum install p7zip p7zip-plugins

Для создания архива с резервной копией используется команда 7za c ключами:

7za a -mx5 -y -pПароль -xr0@/путь/ignore.txt Путь копирования Объект копирования, где

a - команда добавления файлов в архив

-mx5 - уровень сжатия (в данном случае нормальный)

-y - при всех заданных вопроса отвечать да

-p - Пароль на архив

-xr0@/путь/ignore.txt - путь к файлу с исключениями, которые не нужно архивировать, записываются в каждой отдельной строке файла (перед или после слова исключения надо поставить *, иначе у меня не работало)

Путь копирования - указать папку, в которой будет создаваться архив

Объект копирования - указать файл или папку, которую нужно архивировать.

Атрибут a лишь добавляет файлы в архив, а нам нужно полностью его обновлять, поэтому проще перед командой архивации удалить старую версию архива командой: 

rm -f /путь к архиву/Архив, где

-f - принудительное удаление без лишних вопросов.

Также при необходимости можно копировать полученный архив на другой сервер с помощью FTP, SSH и т.д. В нашем случае была расшаренная папке в Windows, поэтому поступамем просто, сначала монтируем сетевой диск и добавляем эту команду для автозагрузки в /etc/rc.local:

mount Удаленная папка /mnt/куда монтировать -o password=

password=мы оставили пустым, т.к. пароля нет, но система все равно его спросит.

После этого можно осуществлять копирование командой 

cp  -f  Объект копирования Путь копирования где

-f - принудительно перезаписывает существующий файл

Далее автоматизируем процесс резервного копирования с помощью Cron, создадим задание Задание.cron и впишем в него команды, связанные с помощью && для последовательного выполнения:

#!/bin/bash

rm -f /путь к архиву/Архив&&7za a -mx5 -y -pПароль -xr0@/путь/ignore.txt Путь копирования Объект копирования&&cp  -f  Объект копирования Путь копирования

С помощью команды crontab -e установим время выполнения задания и поставим ссылку на исполняемый файл Задание.cron

минута час день месяц день_недели /Путь к файлу Задание.cron