odoo命令行备份

admin 2020-7-1 13586

用curl 命令:


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命令:

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


-------------------------------

设置自动备份 Odoo 数据库

为了自动执行备份过程并定期备份我们的 Odoo 数据库,我们可以创建一个 cron 作业。

假设我们希望每天凌晨 01:30 备份我们的 Odoo 数据库并保留最新的 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
sudo chmod +x ~/backup_odoo.sh

> 不要忘了根据您的实际情况更改变量 BACKUP_DIRODOO_DATABASEADMIN_PASSWORD 的值。

最后一步是创建一个新的 cron 作业,每天凌晨 01:30 运行:

```bash

crontab -e
30 1 * * * /home/<yourusername>/backup_odoo.sh

不要忘记根据你的实际情况正确的设置备份脚本的名称和路径。

您可以修改脚本并实现更强大的备份解决方案,例如使用远程备份存储,保留每周和每月备份等等。


-----------------------------

命令行恢复 Odoo 数据库

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

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.



最新回复 (0)
返回