Б. Архивирование и восстановление

Общие положения

Архивирование и восстановление данных JetCalc выполняется при входе на удаленный сервере по SSH с помощью PuTTY посредством выполнения скриптов, соответственно, backup.sh и restore.sh. Сразу после установки JetCalc скрипты находятся только в разделе /htdocs/jetcalc/install. Для использования скриптов их нужно предварительно скопировать в домашний каталог пользователя с помощью Midnight Commander или следующей команды:

cp /htdocs/jetcalc/install/backup.sh ~
cp /htdocs/jetcalc/install/restore.sh ~

Далее необходимо установить текущему пользователю права на выполнение этих скриптов:

cd ~
chmod 744 ./backup.sh
chmod 744 ./restore.sh

На этом предварительная подготовка к использованию скриптов завершена.

Архивирование данных

Создание архивной версии данных JetCalc выполняется путем простого запуска скрипта backup.sh из домашнего каталога:

cd ~
./backup.sh

Результатом выполнения этого скрипта является создание (при отсутствии) в домашней директории папки backup и архивного файла в формате zip с именем, сформированным по следующему шаблону:

dump_YYYY-MM-DD-HH-MM.zip

Архивный zip-файл содержит следующие файлы и каталоги:

./dumpjetcalc/sql.backup
./dumpjetcalc/dump/jetcalc/*.bson
./dumpjetcalc/dump/jetcalc/*.metadata.json

Рекомендуется регулярно создавать архивные копии данных JetCalc. В свою очередь создаваемые архивные файлы рекомендуется копировать в альтернативные места хранения, например на Яндекс.Диск или Google Drive.

Восстановление данных

Восстановление данных выполняется путем запуска скрипта restore.sh в папке, в которой хранятся архивы (по умолчанию это папка backup в домашней директории), с передачей этому скрипту в качестве аргумента имени архивного файла.

cd ~/backup
~/restore.sh dump_YYYY-MM-DD-HH-MM.zip

Удобнее всего для выполнения этой команды использовать Midnight Commander. Для этого нужно перейти в папку backup, ввести в командную строку ~/restore.sh c последующим пробелом, затем выбрать с помощью стрелок на клавиатуре нужный архивный файл и нажать Alt+Enter, после чего запустить выполнение скрипта нажатием Enter.

В процессе выполнения восстановления содержимое архивного файла будет извлечено во временную папку ~/dumpjetcalc, затем будут выполнены процедуры восстановления данных, по завершении которых временная папка будет удалена.

После восстановления данных для корректной работы приложения необходимо выполнить следующие действия в браузере:

  1. Нажать клавишу F5 для открытия панели ввода логина и пароля.

  2. Зайти в административное меню и в разделе Администрирование нажать кнопку Очистить кеш.

  3. Нажать клавишу F12, щелкнуть правой кнопкой мыши по кнопке браузера Обновление страницы и выбрать пункт Очистка кеша и жесткая перезагрузка.

Содержимое скриптов

backup.sh

#!/bin/bash

now="$(date +'%Y-%m-%d-%H-%M')"
tmp=dumpjetcalc

cd $HOME
if [ ! -d $tmp ] 
then
    mkdir $tmp
fi

dirname="$HOME/$tmp"
cd $tmp

mongodump -d jetcalc
export PGPASSWORD="postgres"
pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f $dirname/sql.backup jetcalc

cd $HOME
if [ ! -d backup ]
then
    mkdir backup
fi 

zip -r "backup/dump_$now.zip" $tmp
rm -R $tmp

restore.sh

#!/bin/bash

arh=$1
echo "Выбран файл $arh"

tmp=dumpjetcalc
cd $HOME
if [ -d $tmp ]
then
    rm -R $tmp
fi

unzip $HOME/backup/$arh 
cd $HOME/$tmp

mongorestore --drop
export PGPASSWORD="postgres"
pg_restore -h localhost -p 5432 -U postgres -d jetcalc -v --clean sql.backup

cd $HOME
rm -R $tmp

Last updated

Was this helpful?