gpt4 book ai didi

bash - 如何使用 Cron 备份我的 PostgreSQL 数据库?

转载 作者:行者123 更新时间:2023-11-29 08:46:25 26 4
gpt4 key购买 nike

我可以在脚本中运行诸如 vacuumdb、pg_dump 和 psql 之类的命令,如果我像这样作为它们的开头:

/usr/bin/sudo -u postgres /usr/bin/pg_dump -Fc mydatabase > /opt/postgresql/prevac.gz
/usr/bin/sudo -u postgres /usr/bin/vacuumdb --analyze mydatabase
/usr/bin/sudo -u postgres /usr/bin/pg_dump -Fc mydatabase > /opt/postgresql/postvac.gz
SCHEMA_BACKUP="/opt/postgresql/$(date +%w).db.schema"
sudo -u postgres /usr/bin/pg_dump -C -s mydatabase > $SCHEMA_BACKUP

当我对 root 执行 sudo 时,这些在 Redhat 上的命令行运行,然后正如您在上面的命令中看到的,我对 postgres 执行 sudo -u。

但是当我尝试从 cron 启动它时,我在所有文件中得到零字节——这意味着它没有正常运行。而且我在日志中没有得到任何线索我可以看到。

我的/etc/crontab 文件底部有这个条目

00 23 * * * root /etc/db_backup.cron

是的,/etc/db_backup.cron 是 chmod ug+x,由 root 拥有,文件顶部写着“#!/bin/bash”(减去双引号)。

有人知道是什么吗?

最佳答案

既然你似乎拥有 super 用户权限,你可以像这样将这些命令放入 postgres 用户的 crontab 中:

sudo su postgres
crontab -e

然后将 pg_dump/vacuumdb 命令放在那里。

关于bash - 如何使用 Cron 备份我的 PostgreSQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/854200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com