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

Как настроить автоматическое резервное копирование 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//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, путь к резервной копии базы данных и имя базы данных.

Если восстановление прошло успешно, вывод должен выглядеть следующим образом:

 !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> Redirecting... 

Redirecting...

You should be redirected automatically to target URL: /web/database/manager. If not click the link.

Заключение

В этом руководстве вы рассмотрели создание автоматических ежедневных резервных копий баз данных Odoo с помощью cronjob.

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

резервное копирование cron odoo cron cronjob

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *