如何设置自动Odoo备份

在本教程中,我们将引导您完成创建Odoo数据库的每日自动备份的过程。 Odoo是使用Python编写的最受欢迎的开源ERP系统,并使用PostgreSQL作为数据库后端。

Odoo将其数据存储在PostgreSQL数据库中。 定期备份数据库可以保护您避免潜在的灾难性数据丢失,对于任何安装Odoo的人和所有人来说,这都是至关重要的。

Odoo数据库管理界面

Odoo数据库管理界面提供了用于备份,复制,删除,创建和还原数据库的工具。 使用数据库管理界面创建备份是一件容易的事。 只需打开浏览器并导航到 http://your_server_ip:8069/web/database/manager

您将看到以下屏幕:

点击 Backup 链接,将显示一个新的弹出窗口。

数据库管理器

输入您的Odoo数据库主密码并通过单击蓝色创建一个备份 Backup 按钮。

根据数据库大小,备份可能需要一些时间才能准备就绪。

从命令行创建数据库备份

现在,我们知道如何通过Odoo数据库管理界面创建备份,我们如何使用相同的工具从命令行创建备份? 答案很简单。 使用 wget 要么 curl 。 两种工具都可以通过POST发送数据,我们可以使用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 您需要输入Odoo实例的URL。 在这种情况下,建议您使用HTTPS,因为您不希望密码通过Internet以纯文本格式发送。

您可以在此处找到有关如何使用Nginx将Odoo配置为反向代理的更多信息。

设置自动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_DIRODOO_DATABASEADMIN_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 按钮。

在还原数据库之前,您将需要删除数据库或使用其他数据库名称。

根据数据库大小和Internet速度,还原过程可能需要一些时间。

我们还可以从命令行还原数据库:

curl -F 'master_pwd=superadmin_passwd' -F [email protected]/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="https://linuxize.com/web/database/manager">/web/database/manager</a>.  If not click the link.

结论#

本教程指导您使用cronjob创建Odoo数据库的每日自动备份。

如果您有任何疑问或反馈,请随时发表评论。

odoo cron cronjob备份

Sidebar