Введение.
Резервное копирование и восстановлением системы, является важным условием для успешной эксплуатации Kablink, сохранение информации и возможность её полного восстановления станет особенно востребована, по мере заполнения Портала материалами и публикациями, безопасность которых обеспечивает администратор. Прежде чем открыть пользователям доступ и разрешить осуществлять публикации, запускать рабочие процессы, проекты и т.д, администратору необходимо научиться создавать архивные копии, восстанавливать архив Портала на сервере и быть уверенным, что потери информации не произойдёт.
Следует отметить, в панели управления администратора специальной кнопки, создать архив нет. Здесь, предлагается простой, проверенный временем, надежный сценарий kbbk написанный на shell, с возможность автоматизации расписания выполнения создания архива(ов), при помощью cron. Для начала определимся, что мы будем сохранять и восстанавливать, вероятно это БД Kablink, хранилище Kablink и контейнер Apache-Tomcat (необязательно) т.к в нём могут находится настраиваемые страницы jsp и прочие специфичные файлы вашей организации.
План подготовки резервной копии и автоматизация процесса.
Создание резервной копии.
- Листинг kbbk:
- сценарий kbbk поместить в /usr/local/bin
- архивы лучше хранить на отдельном томе
#!/bin/bash
TEMPDIR=/tmp/kb_bk/
BACKUPDIR=/vol/
mkdir -p $TEMPDIR
# Стоп Kablink
/etc/init.d/teaming stop
# systemctl stop vibe
# Создать dump MySQL и копировать во временный каталог
mysqldump -u user -ppassword -A > $TEMPDIR/all_bd.sql
# Стоп MySQL
/etc/init.d/mysql stop
# Копировать каталоги во временную директорию
cp -r /var/opt/novell/teaming $TEMPDIR
# Старт MySQL
/etc/init.d/mysql start
# Старт Kablink
/etc/init.d/teaming start
# systemctl start vibe
# Сжать и добавить дату создания(максимально до 31 дня месяца)
tar -cjf $BACKUPDIR/tim_`date +%d`_back.tar.bz2 $TEMPDIR
# Очистить временный каталог
rm -rf /tmp/teamback
Здесь, вероятно, особых пояснений не требуется, нужно будет только переписать пути и каталоги под себя. Важно учесть время для выполнения задачи создания резервной копии, что бы не мешать работе пользователей.
Управлять количеством резервных копий необходимо по мере их накопления, администратор должен удалять старые архивы вручную, что потребует дополнительного внимания. Но, «чистку» старых архивов можно автоматизировать, поручив выполнение этой операции планировщику cron, который будет запускать сценарий delkb из каталога /usr/local/bin/:
Сценарий удаления старых архивов delkb.
#!/bin/bash
# DEY- delete file N day
DAY=5
DIR="/vol/"
find $DIR -type f -mtime +$DAY -exec rm -f {} \;
- Пояснения сценария delkb
- DAY=5
- количество дней, старше, которых файлы будут удаляться.
- DIR=»/vol/»
- каталог архива
- -type f
- найти только файлы
- -mtime
- поиск по времени модификации файла
- +$DAY
- определяет значение дней в большею сторону
- -exec
- выполнить следующею команду
- rm -f
- удаление каталогов и файлов не спрашивая
Рассмотрим небольшой пример, допустим мы установили план создания резервных копий Kablink, один раз в день в 00 ч 00 м. Планировщик cron будет выполнять удаление старых архивов один раз в месяц, запуская сценарий delkb.
# crontab -l
#minute (0-59),
#| hour (0-23),
#| | day of the month (1-31),
#| | | month of the year (1-12),
#| | | | day of the week (0-6 with 0=Sunday).
#| | | | | commands
@daily kbbk
@monthly delkb
Планировщик cron выполняет сценарий delkb один раз в месяц в полночь 1-го числа
Вид архива за месяц до запуска delkb, некоторые подробности вывода команды ls пропущены.
vol]# ls -l
... month 1 tim_01_back.tar.bz2
... month 2 tim_02_back.tar.bz2
... month 3 tim_03_back.tar.bz2
... month 4 tim_04_back.tar.bz2
... month 5 tim_05_back.tar.bz2
... month 6 tim_06_back.tar.bz2
... month 7 tim_07_back.tar.bz2
... month 8 tim_08_back.tar.bz2
... month 9 tim_09_back.tar.bz2
... month 10 tim_10_back.tar.bz2
... month 11 tim_11_back.tar.bz2
... month 12 tim_12_back.tar.bz2
... month 13 tim_13_back.tar.bz2
... month 14 tim_14_back.tar.bz2
... month 15 tim_15_back.tar.bz2
... month 16 tim_16_back.tar.bz2
... month 17 tim_17_back.tar.bz2
... month 18 tim_18_back.tar.bz2
... month 19 tim_19_back.tar.bz2
... month 20 tim_20_back.tar.bz2
... month 21 tim_21_back.tar.bz2
... month 22 tim_22_back.tar.bz2
... month 23 tim_23_back.tar.bz2
... month 24 tim_24_back.tar.bz2
... month 25 tim_25_back.tar.bz2
... month 26 tim_26_back.tar.bz2
... month 27 tim_27_back.tar.bz2
... month 28 tim_28_back.tar.bz2
... month 29 tim_29_back.tar.bz2
... month 30 tim_30_back.tar.bz2
... month 31 tim_31_back.tar.bz2
Список архивов после выполнения delkbb.
# ls -l
... month 7 tim_07_back.tar.bz2
... month 8 tim_08_back.tar.bz2
... month 9 tim_09_back.tar.bz2
... month 10 tim_10_back.tar.bz2
... month 11 tim_11_back.tar.bz2
... month 12 tim_12_back.tar.bz2
... month 13 tim_13_back.tar.bz2
... month 14 tim_14_back.tar.bz2
... month 15 tim_15_back.tar.bz2
... month 16 tim_16_back.tar.bz2
... month 17 tim_17_back.tar.bz2
... month 18 tim_18_back.tar.bz2
... month 19 tim_19_back.tar.bz2
... month 20 tim_20_back.tar.bz2
... month 21 tim_21_back.tar.bz2
... month 22 tim_22_back.tar.bz2
... month 23 tim_23_back.tar.bz2
... month 24 tim_24_back.tar.bz2
... month 25 tim_25_back.tar.bz2
... month 26 tim_26_back.tar.bz2
... month 27 tim_27_back.tar.bz2
... month 28 tim_28_back.tar.bz2
... month 29 tim_29_back.tar.bz2
... month 30 tim_30_back.tar.bz2
... month 31 tim_31_back.tar.bz2
План восстановления Kablik.
- Порядок:
- пробное, на стенде, восстановление резервной копии
- установить сервер с параметрами оригинала
- развернуть Kablink той же версии, что и при создании резервной копии
- выполните действия, как показано ниже
Восстановление Kablink.
Распаковать копию архива Kablink.
# tar xvf tim_data_back.tar.bz2
Остановить Kablink или Vibe.
# /etc/init.d/teaming stop
# systemctl stop vibe
Скопировать или переписать файлы хранилищ пользователей из архива в целевой каталог.
# cp -invR tim_bk/teaming /var/opt/novell
Выполнить восстановление и проверку базы данных mysql Kablink.
# tim_bk mysql -uroot -pkablink -A < all_bd.sql
# mysqlcheck -uroot -pkablink --auto-repair --check --all-databases
Запустить kablink.
# /etc/init.d/teaming start
# systemctl start vibe
Все шаги рассмотренные выше, можно использовать для Vibe, заменив kbbk на vbbk
Заключение.
Если после всех шагов рассмотренных выше ошибок не произошло, остаётся зарегистрироваться на Портале как admin и выполнить операцию индексирования БД и файлов Kablink. Хранить резервные копии лучше всего на отдельном дисковом ресурсе(сах), периодичность и частота создание архивных копий может соответствовать работе предприятия и рассчитываться примерно по такой регламентной схеме: понедельник, вторник, среда, четверг, пятница в 23 час 59 мин должен включаться crontab, создавать архив, после чего готовые и сжатые архивные копии перемещаются в подготовленный для них хранилище.
Вся технологическая процедура резервного копирования осуществляется автоматически, без участия администратора — достигается проверкой всех этапов создания backup на стенде, размеры тестируемых каталогов и БД можно делать небольшими, для уменьшения времени окончания операций, общий прогон делают на действующем Портале Kablink. И ещё одно замечание, никогда не храните резервные копии на диски где установлен kablink, это может привести к печальным последствиям — отказу оборудования от обслуживания.