2024年11月21日

HYEOS

随事而为

odoo 17数据库到期

1 min read

企业版数据库到期,系统参数添加两个参数:

database.expiration_date=2100-02-11 17:01:10
database.expiration_reason=trial

添加两个参数以后每过段时间或是系统更新时会发现到期时间自动变更回去了,为此写一个python脚本自动执行更改数据库到期日期。

此隐藏内容查看价格5立即支付
Email:hyeos@hyeos.net

执行上述代码提示验证报错时,可能由于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

  1. 编辑 crontab

首先,我们需要为当前用户或系统用户编辑 crontab 文件。

bash

打开当前用户的 crontab 文件进行编辑

crontab -e

或者如果您需要使用特定用户(如 postgres 用户)运行脚本,可以使用以下命令:

bash

打开 postgres 用户的 crontab 文件进行编辑

sudo crontab -u postgres -e

  1. 添加 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 文件中。
  1. 保存并退出

编辑完成后,保存文件并退出编辑器。对于 vi 或 vim 编辑器,按 ESC,输入 :wq,然后按回车。

  1. 验证 cron 任务是否成功添加

可以使用以下命令查看已添加的 cron 任务:

bash

crontab -l

或者查看特定用户的 cron 任务:

bash

sudo crontab -u postgres -l

注意事项

权限:确保脚本有可执行权限。可以使用以下命令赋予可执行权限:

bash

chmod +x /work/autostart/upgrade_database_script.py

环境变量:cron 任务运行时可能没有您在交互式 shell 中的环境变量。确保脚本中的路径和环境配置是完整的,或者在脚本中手动设置必要的环境变量。

通过这些步骤,您的脚本将每小时执行一次,并将输出记录到日志文件中。确保在实际运行中监控日志,以确认任务按预期执行。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注