我有这个简单的脚本来备份 postgres 中的所有数据库
pg_dumpall -U pg_user > /tmp/tmp.txt
DUMP_STATUS=$?
echo "Dump status: $DUMP_STATUS" > /tmp/status.txt
Run Code Online (Sandbox Code Playgroud)
从命令行执行脚本时,转储状态为 0,并且正确创建了 tmp.txt 文件。
但是,如果我在 crontab 中将该脚本作为 cronjob 执行,则我的 tmp.txt 为空(所有数据库的转储失败),并且我的 status.txt 文件包含转储状态 127。
我注意到的一个奇怪的行为是 pg_dumpall 会将信息通过管道传输到文件中,但也会将其打印在终端上。我认为这种行为可能是问题的原因。
知道如何解决这个问题吗?
我正在运行 FreeBSD:
> uname -mrs
FreeBSD 9.1-PRERELEASE amd64
> psql -V
psql (PostgreSQL) 9.1.7
contains support for command-line editing
Run Code Online (Sandbox Code Playgroud)
如果脚本可以脱离 crontab 工作,您应该确保以下几点:
$PGHOME
$PGDATA
$PGPORT
$PATH
归档时间: |
|
查看次数: |
6531 次 |
最近记录: |