postgresql - crontab 后 postgres 数据库备份很小

标签 postgresql cron

我正在尝试使用 crontab 进行简单的 postgres 备份。这是我使用的命令:

# m  h  dom mon dow user     command
 49 13  *   *   *   postgres /usr/bin/pg_dump store | bzip2 > /home/backups/postgres/$(date +"\%Y-\%m-\%d")_store.sq.bz2

创建了一个备份文件,但它非常小(看起来像 14 个字节)。

我可以在终端中正常运行此命令(文件大小与我的数据库匹配)。

日志文件没有提及任何错误 (grep CRON/var/log/syslog)。知道可能会出现什么问题吗?

最佳答案

解决这个问题的关键是要意识到在 bash 中运行“相同”命令和通过 Cron 运行不是一回事!

例如当通过 Cron 运行时,明显的默认设置(.bash_profile/.pgpass/默认二进制路径)是不一样的,因此在 bash 上有效的可能在 Cron 中不起作用。

对于 list :

  1. 确保 Bzip2 替换为完整路径(例如 CentOS/RHEL 上的 /usr/bin/bzip2)
  2. 确保“Store”数据库可由 Cron 命令读取(例如,添加 -U Postgres 将是一个很好的补充)。如果 DB 登录依赖于 .pgpass 文件,则它不适用于 cron。在这种情况下,您需要确保为此目的配置了 pg_hba.conf(例如,您可以允许对特定的已知数据库/机器/用户组合等进行“trust”身份验证。<
  3. 出于显而易见的原因,确保/home/backups/postgres/... 可写访问。

关于postgresql - crontab 后 postgres 数据库备份很小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31103051/

相关文章:

node.js - 将数组插入postgresql

postgresql - 如何在 PostgreSQL/PostGIS 中 INSERT 触发器后更新表新值?

SQL Select 语句-多表允许空值

postgresql - Postgres 解释计划对于具有不同值的相同查询是不同的

linux - 在类 Unix 系统中上次运行的 cron 作业的详细信息?

linux - 复制最近 14 天内修改过的文件

java - Spring Cron验证

linux - 运行 FTP 的 Ubuntu Crontab 不工作

mysql - 如何查找在 PostgreSQL 和 MySQL 中运行查询的 CPU 和 RAM 使用情况

ruby-on-rails - Rails - 每当 gem - 动态值