Как настроить автоматическое резервное копирование Odoo

В этом руководстве мы проведем вас через процесс создания автоматических ежедневных резервных копий ваших баз данных 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, который вы можете называть как хотите:

~/backup_odoo.sh
#!/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.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий