You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行pg_basebackup命令报错:命令行参数过多(首个为20180319)

解决pg_basebackup报错:too many command-line arguments的问题

这个报错的根源很容易找到——你的命令里,-D参数的路径和date命令的输出之间多了一个空格,导致shell把它们拆成了两个独立的参数。

具体来说,你原命令的这部分写法有问题:

-D /var/lib/pgsql/10/backups/ `date +%Y%m%d`

/var/lib/pgsql/10/backups/后面的空格让shell认为-D的参数就到这里为止,而date +%Y%m%d输出的20180319被当成了一个额外的、pg_basebackup不识别的命令行参数,自然就触发了“too many command-line arguments”的报错。

修正后的命令

你只需要把路径和date命令的输出合并成一个完整的参数即可,推荐两种常用写法:

方式1:使用$()拼接路径(更易读,推荐)

pg_basebackup -U xxxxx -h xxxxx -p 5432 -D /var/lib/pgsql/10/backups/$(date +%Y%m%d) -X stream -P -v -Ft -z

方式2:用双引号包裹完整路径(更稳妥,适配路径含特殊字符的场景)

pg_basebackup -U xxxxx -h xxxxx -p 5432 -D "/var/lib/pgsql/10/backups/$(date +%Y%m%d)" -X stream -P -v -Ft -z

如果习惯用反引号语法,也要确保路径和反引号之间没有空格:

pg_basebackup -U xxxxx -h xxxxx -p 5432 -D /var/lib/pgsql/10/backups/`date +%Y%m%d` -X stream -P -v -Ft -z

执行修正后的命令后,-D会拿到完整的目标备份路径(比如/var/lib/pgsql/10/backups/20180319),pg_basebackup就能正常执行基础备份流程了。

内容的提问来源于stack exchange,提问作者Satish Ch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:12:21