В этом руководстве мы проведем вас через процесс создания автоматических ежедневных резервных копий ваших баз данных Odoo. Odoo — самая популярная ERP-система с открытым исходным кодом, написанная на Python и использующая PostgreSQL в качестве серверной части базы данных.
Odoo хранит свои данные в базе данных PostgreSQL. Регулярное резервное копирование базы данных защитит вас от потенциально катастрофической потери данных, и это абсолютно важно для всех и каждого, у кого установлена установка Odoo.
Содержание
Интерфейс управления базой данных Odoo
Интерфейс управления базой данных Odoo предоставляет инструменты для резервного копирования, копирования, удаления, создания и восстановления базы данных. Создание резервной копии с помощью интерфейса управления базой данных не составляет труда. Просто откройте браузер и перейдите по http://your_server_ip:8069/web/database/manager
.
Вам будет представлен следующий экран:
Щелкните ссылку « Backup
и откроется новое всплывающее окно.
Введите главный пароль своей базы данных Odoo и создайте резервную копию, нажав синюю кнопку Backup
.
В зависимости от размера базы данных резервное копирование может занять некоторое время, прежде чем оно будет готово.
Создайте резервную копию базы данных из командной строки
Теперь, когда мы знаем, как создать резервную копию через интерфейс управления базой данных Odoo, как мы можем использовать тот же инструмент для создания резервной копии из командной строки? Ответ прост. Используйте wget
или curl
. Оба инструмента могут отправлять данные с помощью POST, которые мы можем использовать для передачи необходимых переменных в инструмент базы данных Odoo.
В приведенном ниже примере наш главный пароль — ADMIN_PASSWORD
и мы создаем файл резервной копии back_up_filename.zip
базы данных с именем DB_NAME
который будет сохранен в каталоге backup_dir
.
curl -X POST -F 'master_pwd=ADMIN_PASSWORD' -F 'name=DB_NAME' -F 'backup_format=zip' -o /backup_dir/back_up_filename.zip http://localhost:8069/web/database/backup
Если вы предпочитаете wget
curl
, вы можете использовать следующую команду:
wget --post-data 'master_pwd=ADMIN_PASSWORD&name=DB_NAME&backup_format=zip' -O /backup_dir/back_up_filename.zip http://localhost:8069/web/database/backup
Если вы хотите создать резервную копию из удаленного места вместо localhost
вам необходимо ввести URL-адрес вашего экземпляра Odoo. В этом случае рекомендуется использовать HTTPS, потому что вы не хотите, чтобы ваш пароль отправлялся через Интернет в виде простого текста.
Вы можете найти больше информации о том, как настроить Odoo с Nginx в качестве обратного прокси здесь .
Настройка автоматического резервного копирования Odoo
Чтобы автоматизировать процесс резервного копирования и резервное копирование нашей базы данных Odoo через регулярные промежутки времени, мы можем создать задание cron .
Допустим, мы хотим делать резервную копию нашей базы данных Odoo каждый день в 01:30 am
и хранить последние 7 резервных копий.
Мы создадим простой сценарий bash, который вы можете называть как хотите:
#!/bin/bash
# vars
BACKUP_DIR=~/odoo_backups
ODOO_DATABASE=db1
ADMIN_PASSWORD=superadmin_passwd
# create a backup directory
mkdir -p ${BACKUP_DIR}
# create a backup
curl -X POST
-F "master_pwd=${ADMIN_PASSWORD}"
-F "name=${ODOO_DATABASE}"
-F "backup_format=zip"
-o ${BACKUP_DIR}/${ODOO_DATABASE}.$(date +%F).zip
http://localhost:8069/web/database/backup
# delete old backups
find ${BACKUP_DIR} -type f -mtime +7 -name "${ODOO_DATABASE}.*.zip" -delete
Сделайте скрипт исполняемым с помощью chmod
:
sudo chmod +x ~/backup_odoo.sh
BACKUP_DIR
, ODOO_DATABASE
и ADMIN_PASSWORD
соответствии с вашими потребностями.Последний шаг — создать новое задание cron, которое будет запускаться каждый день в 01:30 am
:
crontab -e
30 1 * * * /home/<yourusername>/backup_odoo.sh
Вы можете изменить сценарий и реализовать более надежное решение для резервного копирования, такое как использование удаленного хранилища резервных копий, еженедельное и ежемесячное резервное копирование и т. Д.
Восстановить базу данных Odoo
Чтобы восстановить резервную копию базы данных с помощью интерфейса управления базой данных, откройте браузер и перейдите по http://your_server_ip:8069/web/database/manager
.
Нажмите кнопку « Restore Database
, и откроется новое всплывающее окно.
Введите главный пароль базы данных Odoo, выберите файл резервной копии, введите новое имя базы данных и восстановите базу данных, нажав синюю кнопку « Continue
.
В зависимости от размера базы данных и скорости вашего интернета процесс восстановления может занять некоторое время.
Мы также можем восстановить базу данных из командной строки:
curl -F 'master_pwd=superadmin_passwd' -F backup_file=@/opt/odoo/odoo_backups/db1.2018-04-14.zip -F 'copy=true' -F 'name=db3' http://localhost:8069/web/database/restore
Конечно, вам нужно будет настроить команду с вашим паролем Odoo Master, путем к резервной копии базы данных и именем базы данных.
Если восстановление прошло успешно, результат должен выглядеть так:
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="/web/database/manager">/web/database/manager</a>. If not click the link.
Выводы
В этом руководстве вы научились создавать автоматические ежедневные резервные копии ваших баз данных Odoo с помощью cronjob.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.