Postgresql自动备份脚本在终端中运行,但不在MacOS上的CRON作业中运行

时间:2018-03-12 08:16:32

标签: postgresql cron backup pg-dump

我使用了Automated_Backup_on_Linux中的Common Postgresql备份脚本:

#!/bin/bash
if [ ! $HOSTNAME ]; then HOSTNAME="localhost"; fi
if [ ! $USERNAME ]; then USERNAME="postgres"; fi
BACKUP_DIRECTORY="/Users/xeranta/Documents/AW/"
CURRENT_DATE=$(date "+%Y%m%d")
if [ -z "$1" ]; then
    pg_dump -U postgres -h localhost -p 5432 db_gocampus_unmul \
    > $BACKUP_DIRECTORY/db_gocampus_unmul.sql
else
    pg_dump $1 | gzip - > $BACKUP_DIRECTORY/$1_$CURRENT_DATE.sql.gz
fi

它在终端

中运行
$ ~/Documents/AW/./dbbackup.sh

但是在MacOS Sierra版本10.12.6中的CRONTAB中设置时不会运行

我有这个错误

  

/ Users / xeranta / Documents / AW /./ backup.sh:line 36:pg_dumpall:command   找不到

1 个答案:

答案 0 :(得分:0)

问题的原因是pg_dump位于交互式shell中的PATH上,而不是位于cron作业中。

您应该使用与此类似的绝对路径:

PGPATH=/wherever/your/postgres/binaries/are

"$PGPATH"/pg_dump ...