pg_backup.sh:"没有这样的文件或目录"对于pg_backup.config

时间:2014-11-23 17:45:56

标签: bash postgresql shell backup dump

为了创建postgres数据库的备份,我下载了here提供的备份脚本。

我创建了一个位于pg_backup.config的{​​{1}}。将/etc放入pg_backup.sh。尝试运行脚本时,如下所示:

/usr/local/bin

...我收到以下错误消息:

$ pg_backup.sh -c /etc/pg_backup.config

我做错了吗?显然,虽然我将/usr/local/bin/pg_backup.sh: line 27: /usr/local/bin/pg_backup.config: No such file or directory 指定为配置输入,但脚本会尝试从/usr/local/bin/pg_backup.config加载配置。如何指定从何处加载配置?

1 个答案:

答案 0 :(得分:3)

该脚本似乎接受命令行上的配置文件,但要求在二进制文件本身旁边存在一个(并且以不太健壮的方式找到该位置 { {3}} )。

脚本坏了。

它首先要做的是解析其命令行选项(使用手动while循环)。当它这样做时,它会从位置参数中删除它们(使用shift)。当没有更多位置参数时([ $# -gt 0 ]不再为真),它会停止该循环。

在排空位置参数后,它会立即检查位置参数的计数再次if [ $# = 0 ]; then),并且当不可避免地发现它没有更多的位置参数时获取其默认配置文件。

相比之下,pg_backup_rotated.sh脚本有一个更合理的加载配置文件的机制(虽然它仍然使用不那么强大的方法来查找默认配置文件的位置)。