СОЗДАНИЕ БЕКАПОВ
FSBACKUP — утилита для создания инкрементного или полного бекапа отдельных файлов или целой файловой системы. Скачать её можно по ссылке.
Для установки воспользуйтесь утилитой yum:
sudo yum localinstall <путь_до_установочного_пакета>
После установки программа будет находится по следующему пути — /usr/local/fsbackup/
Примеры конфигурационных файлов и документация — /usr/share/doc/fsbackup/
1 Создание файла конфигурации для резервного копирования.
В конфигурационном файле перечислены настройки, которые используются во время процесса резервного копирования, а также необходимые файлы или директории, которые впоследствии будут сохранены в бекапе.
Скопируйте пример конфигурационного файла и отредактируйте его. Можно создавать таким образом сколько угодно конфигураций для резервного копирования.
# cp /usr/share/doc/fsbackup/cfg_example /usr/local/fsbackup/<имя_конфигурационного_файла>
# nano /usr/local/fsbackup/<имя_конфигурационного_файла>
В скопированном примере конфигурационного файла все поля имеют пояснения на русском языке. Далее приведены обязательные настройки, которые нужно отредактировать:
- $cfg_backup_name — имя файла бекапа
- $cfg_save_old_backup — сохранение старого бекапа. По умолчанию старая копия помещается в папку OLD внутри директории бекапа.
- $cfg_backup_style — выбор метода бекапа. По умолчанию установлен инкрементный бекап.
- $cfg_local_path — директория хранения бекапа.
- $cfg_cache_dir — директория хранения хэша бекапа. Не должна совпадать с директорией хранения самого бекапа.
- __DATA__ — пути к файлам и директориям, которые нужно занести в бекап.
Для наглядности создадим еще один конфигурационный файл для папок пользователей.
# cp /usr/local/fsbackup/cfg_example /usr/local/fsbackup/cfg_users # nano /usr/local/fsbackup/cfg_users
Отредактируем необходимые поля.
$cfg_backup_name = "users"; # имя бекапа $cfg_save_old_backup = 0; # не сохранять бекап $cfg_backup_style = "full_backup"; # создание полного бекапа $cfg_local_path = "/mnt/personal"; # директория создания бекапов $cfg_cache_dir = "/srv/cache"; # директория для помещения текущих хэшей # Список файлов и условий для помещения в бекап. __DATA__ /srv/user1 /srv/user2
2 Скрипт создания бекапа
Далее отредактируйте скрипт создания бекапа. Создайте для каждого конфигурационного файла свой файл создания бекапа, путем копирования исходного скрипта. Это файл также имеет пояснения на русском языке.
# cp /usr/local/fsbackup/create_backup.sh /usr/local/fsbackup/create_backup_users.sh
Отредактируйте нужные вам параметры.
# nano /usr/local/fsbackup/create_backup_users.sh
Самым главным является config_files, в котором перечислены необходимые конфигурационные файлы.
config_files="cfg_users" # укажите необходимые конфигурации файлы для создания по ним бекакпа.
3 Скрипт полного восстановления из бекапа
Для полного восстановления скопируйте и отредактируйте скрипт fsrestore.sh , расположенный по пути usr/local/fsbackup/scripts/
# cp /usr/local/fsbackup/scripts/fsrestore.sh /usr/local/fsbackup/scripts/fsrestore_users.sh
# nano /usr/local/fsbackup/scripts/fsrestore_users.sh
backup_name="users" # имя бекапа backup_path="/mnt/personal/" # директория где находится бекап. restore_path="/ " # корневая директория куда будут помещены данные, установите /, т.к распаковка происходит с полными путями.
Для каждой конфигурации создайте свой скрипт восстановления аналогичным образом.
СОЗДАНИЕ БЕКАПА
Дополнить архив новыми файлами или создать бекап
# /usr/local/fsbackup/create_backup_users.sh
ВОССТАНОВЛЕНИЕ ИЗ БЕКАПА
Для восстановления отдельных файлов из бекапа воспользуйтесь утилитой tar.
- tar -tf <имя архива> — просмотр директорий в архиве без его распаковки.
- tar -xf <имя архива> <имя файла> <имя файла> — разархивирование одного или нескольких файлов.
В текущем примере архив бекапа находится по пути /mnt/personal
После перемещаете по нужному пути извлеченный файл.
Чтобы восстановить все файлы из бекапа, воспользуйтесь ранее созданным скриптом fsrestore_<…>.sh. Учтите, что файлы, созданные после процедуры бекапа, останутся,а удаленные файлы или измененные файлы вернутся в исходное состояние. В текущем примере скрипт восстановления назван fsrestore_users.sh
# /usr/local/fsbackup/scripts/fsrestore_users.sh
ДОБАВЛЕНИЕ И УДАЛЕНИЕ НОВЫХ ДИРЕКТОРИЙ В БЕКАП
Для добавления новых директорий в бекап отредактируйте файл его создания.
Например, добавим пользователя user3 в бекап users. Для этого добавим папку с данными user3 в конец секции __DATA__. Для удаления директорий из бекапа удалите путь к директории из файла.
# nano /usr/local/fsbackup/create_backup_users.sh … __DATA__ /srv/user1 /srv/user2 /srv/user3
Теперь каталоги трех пользователей будут добавляться в бекап users.
АВТОМАТИЗАЦИЯ СОЗДАНИЯ БЕКАПОВ
Для автоматизации можно использовать cron. Отредактируйте файл /etc/crontab с помощью текстового редактора:
# nano /etc/crontab
Или специальной команды
# crontab -e
Например, для создания еженедельного бекапа общей папок пользователей в 23.30 по субботам впишите следующую строку в конец файла.
30 23 * * 6 root /usr/local/fsbackup/create_backup_users.sh
Более подробная инструкция по службе cron находится здесь.