Резервное копирование и восстановление Портала Kablink.
Резервное копирование и восстановлением системы, является важным условием для успешной эксплуатации Kablink, сохранение информации и возможность её полного восстановления станет особенно востребована, по мере заполнения Портала материалами и публикациями, безопасность которых обеспечивает администратор. Прежде чем открыть пользователям доступ и разрешить осуществлять публикации, запускать рабочие процессы, проекты и т.д, администратору необходимо научиться создавать архивные копии, восстанавливать архив Портала на сервере и быть уверенным, что потери информации не произойдёт.
Следует отметить, в панели управления администратора специальной кнопки, создать архив нет. Здесь, предлагается простой, проверенный временем, надежный сценарий kbbk написанный на shell, с возможность автоматизации расписания выполнения создания архива(ов), при помощью cron. Для начала определимся, что мы будем сохранять и восстанавливать, вероятно это БД Kablink, хранилище Kablink и контейнер Apache-Tomcat (необязательно) т.к в нём могут находится настраиваемые страницы jsp и прочие специфичные файлы вашей организации.
1.Создание резервной копии.
Листинг kbbk
сценарий, kbbk поместить в /usr/local/bin , архивы лучше хранить на отдельном томе vol
#!/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 {} \;
- DAY=5 //количество дней, старше, которых файлы будут удаляться.
- DIR="/vol/" //каталог архива
- -type f //найти только файлы
- -mtime //поиск по времени модификации файла
- +$DAY //определяет значение дней в большию сторону
- -exec //выполнить следуюшию команду
- rm -f //удаление каталогов и файлов не спрашивая
Рассмотрим небольшой пример, допустим мы установили план создания резервных копий Kablink, один раз в день в 00 ч 00 м. Планировщик cron будет выполнять удаление старых архивов один раз в месяц, запуская сценарий delkb:
планировщик cron выполняет сценарий delkb один раз в месяц в полночь 1-го числа
# 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
вид архива за месяц до запуска 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 пропущены
vol]# 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
2.Восстановление Kablink из резервной копии.
- после того как, архив будет создан необходимо тестировать на стенде восстановление резервной копии
- необходимо развернуть сервер с параметрами оригинала, установить "чистый" Kablink той же версии, что и при создании резервной копии
- когда все подготовительные работы будут сделанны, последовательно выполните действия как показано ниже
распаковать копию архива Kablink
vol]# tar xvf tim_data_back.tar.bz2
остановить Kablink или Vibe
# /etc/init.d/teaming stop
# systemctl stop vibe
скопировать или переписать файлы хранилищ пользователей из архива в целевой каталог
vol]# cp -invR tim_bk/teaming /var/opt/novell
выполнить восстановление и проверку базы данных mysql Kablink
tim_bk]# tim_bk mysql -uroot -pkablink -A < all_bd.sql
# mysqlcheck -uroot -pkablink --auto-repair --check --all-databases
запустить kablink/Vibe
# /etc/init.d/teaming start
# systemctl start vibe
все шаги рассмотренные выше, можно использовать для Vibe, заменив kbbk на vbbk
3. Действия после восстановление Kablink из резервной копии.
Если после всех шагов рассмотренных выше ошибок не произошло, остаётся зарегистрироваться на Портале как admin и выполнить операцию индексирования БД и хранилища Kablink.