odoo 17数据库到期
1 min read企业版数据库到期,系统参数添加两个参数:
database.expiration_date=2100-02-11 17:01:10
database.expiration_reason=trial
添加两个参数以后每过段时间或是系统更新时会发现到期时间自动变更回去了,为此写一个python脚本自动执行更改数据库到期日期。
执行上述代码提示验证报错时,可能由于postgresql使用apt源安装时没有密码,因此需要登录数据库设置一个密码:
sudo -i -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'newpassword';"
而后pg_hba.con配置文件确保设置正确允许使用密码认证:
host all all 127.0.0.1/32 md5
重启数据库sudo systemctl restart postgresql
crontab
- 编辑 crontab
首先,我们需要为当前用户或系统用户编辑 crontab 文件。
bash
打开当前用户的 crontab 文件进行编辑
crontab -e
或者如果您需要使用特定用户(如 postgres 用户)运行脚本,可以使用以下命令:
bash
打开 postgres 用户的 crontab 文件进行编辑
sudo crontab -u postgres -e
- 添加 cron 任务
在打开的 crontab 编辑器中,添加如下行来设置脚本每小时执行一次:
bash
0 /usr/bin/python3 /work/autostart/upgrade_database_script.py >> /work/autostart/upgrade_database_script.log 2>&1
解释
0 * * * *:表示在每小时的第 0 分钟执行任务(即每小时一次)。
/usr/bin/python3:这是 Python 解释器的路径,请确保路径正确,可以使用 which python3 来确认路径。
/work/autostart/upgrade_database_script.py:这是您要执行的 Python 脚本的路径。
>> /work/autostart/upgrade_database_script.log 2>&1:将输出和错误日志写入到 /work/autostart/upgrade_database_script.log 文件中。
- 保存并退出
编辑完成后,保存文件并退出编辑器。对于 vi 或 vim 编辑器,按 ESC,输入 :wq,然后按回车。
- 验证 cron 任务是否成功添加
可以使用以下命令查看已添加的 cron 任务:
bash
crontab -l
或者查看特定用户的 cron 任务:
bash
sudo crontab -u postgres -l
注意事项
权限:确保脚本有可执行权限。可以使用以下命令赋予可执行权限:
bash
chmod +x /work/autostart/upgrade_database_script.py
环境变量:cron 任务运行时可能没有您在交互式 shell 中的环境变量。确保脚本中的路径和环境配置是完整的,或者在脚本中手动设置必要的环境变量。
通过这些步骤,您的脚本将每小时执行一次,并将输出记录到日志文件中。确保在实际运行中监控日志,以确认任务按预期执行。