Б. Архивирование и восстановление
Общие положения
Архивирование и восстановление данных 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, затем будут выполнены процедуры восстановления данных, по завершении которых временная папка будет удалена.
После восстановления данных для корректной работы приложения необходимо выполнить следующие действия в браузере:
Нажать клавишу F5 для открытия панели ввода логина и пароля.
Зайти в административное меню и в разделе Администрирование нажать кнопку Очистить кеш.
Нажать клавишу 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?