在crontab之后postgres db backup很小

时间:2015-06-28 18:05:50

标签: postgresql crontab

我正在尝试使用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)。知道可能会发生什么吗?

1 个答案:

答案 0 :(得分:0)

解决这个问题的关键,就是要意识到运行“同样的”#39;在bash中执行命令并通过Cron运行并不是同样的事情

例如当通过Cron运行时,明显的默认值(.bash_profile / .pgpass /默认二进制路径)不相同,因此对bash有效的方法在Cron中可能不起作用。

查看清单:

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