
В этом руководстве мы покажем вам процесс создания автоматических ежедневных резервных копий баз данных 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
Связанные руководства
- Планирование заданий Cron с помощью Crontab
- Установить Odoo 12 на CentOS 7
- Как развернуть Odoo 12 в Ubuntu 18.04
- Как сделать резервную копию и восстановить базы данных MySQL с помощью Mysqldump
- Как развернуть Odoo 11 в Ubuntu 18.04
- Установить Odoo 11 на CentOS 7
- Настройте Odoo с Nginx в качестве обратного прокси-сервера