Резервное копирование и восстановление в GNU/Linux
Данная инструкция является кросс дистрибутивной, поэтому будет справедлива и для других сборок Unix. Предполагается, что все команды выполняются от root. Создаём каталог в файловой системе, куда потом будут помещаться архивы с резервными копиями
mkdir -p /var/backup
Создаём командный сценарий /var/scripts/backup_db.sh
#!/bin/sh
export VERSION=0_7_6 # версия программы Severcart
export BPPATH=/var/backup
export DB=severcart
export PGHOST=127.0.0.1
export PGUSER=scuser
export PGPASSWORD=123456
pg_dump -d $DB | gzip > $BPPATH/$VERSION_$(date +%d-%m-%Y).sql.gz
Устанавливаем бит исполнения
chmod +x /var/scripts/backup_db.sh
Исходя из листинга видно, что работа скрипта регулируется переменными окружения. Далее создадим задание в cron для периодического выполнения.
crontab -e
Добавляем в конец файла строку и сохраняем.
0 3 * * * /var/scripts/backup_db.sh
Восстанавливаем базу
Важно! Восстанавливаемая и установленная версии программы должны совпадать, иначе процесс восстановления завершится с ошибкой. Например, если был сделан бэкап Severcart 1.1.0, то и восстанавливаемая версия должна быть 1.1.0.
Исходники файлов можно скачать с сайта https://www.severcart.ru/downloads/. Инструкция по инициализации виртуального окружения с необходимыми зависимостями находится здесь. Выполняется последовательно, за исключением запуска скрипта
python3 /var/venv/severcart/tkinstaller/install.py
Восстанавливаем структуру базы данных и их содержимое:
zcat /var/backup/0_7_6_28-12-2016.sql.gz > file.sql
psql -h 127.0.0.1 -d severcart -U scuser -f file.sql
На этом восстановление программы завершён.