如何设置自动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_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
按钮。
在还原数据库之前,您将需要删除数据库或使用其他数据库名称。
根据数据库大小和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备份