Резервное копирование и восстановлением системы, является важным условием для успешной эксплуатации 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.