Postgresql 自动备份脚本在终端中运行但不在 MacOS 上的 CRON 作业中运行
Postgresql Auto backup script runs in terminal but does not runs in CRON job on MacOS
我使用了来自 Automated_Backup_on_Linux:
的通用 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 "" ]; then
pg_dump -U postgres -h localhost -p 5432 db_gocampus_unmul \
> $BACKUP_DIRECTORY/db_gocampus_unmul.sql
else
pg_dump | gzip - > $BACKUP_DIRECTORY/_$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
not found
问题的原因是 pg_dump
在交互式 PATH
上 shell,但不在 cron 作业中。
您应该使用类似这样的绝对路径:
PGPATH=/wherever/your/postgres/binaries/are
"$PGPATH"/pg_dump ...
我使用了来自 Automated_Backup_on_Linux:
的通用 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 "" ]; then
pg_dump -U postgres -h localhost -p 5432 db_gocampus_unmul \
> $BACKUP_DIRECTORY/db_gocampus_unmul.sql
else
pg_dump | gzip - > $BACKUP_DIRECTORY/_$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 not found
问题的原因是 pg_dump
在交互式 PATH
上 shell,但不在 cron 作业中。
您应该使用类似这样的绝对路径:
PGPATH=/wherever/your/postgres/binaries/are
"$PGPATH"/pg_dump ...