我正在使用 Ubunutu。我只是想创建一个 postgre 转储。因此我使用以下命令:
sudo -u wap PGPASSWORD="postgres" pg_dump -h localhost -U postgres -d n26n -n public -FC -f /tmp/dump_file --verbose
以上内容按预期创建了转储。但是,由于我以详细模式运行它,因此我希望将输出记录到文件中。我尝试了以下操作:
sudo -u wap PGPASSWORD="postgres" pg_dump -h localhost -U postgres -d n26n -n public -FC -f /tmp/dump_file --verbose >> logfile
日志文件似乎是空的。
我如何表示命令的结束?
答案1
如果没有您收到的输出样本,我只能进行推测,但您的命令包含-f (--file)
转储输出的去向:/home/me/dump_file
。
-f file
将输出发送到指定文件。对于基于文件的输出格式,可以省略此参数,在这种情况下将使用标准输出。但是,对于目录输出格式,必须给出此参数,其中指定目标目录而不是文件。在这种情况下,目录由创建,
pg_dump
并且之前必须不存在。
任何其他输出都将来自stderr
因为您已经提供--verbose
,所以您应该使用重定向此输出2> logfile1
。
--verbose
指定详细模式。这将导致
pg_dump
将详细的对象注释和开始/停止时间输出到转储文件,并将进度消息输出到标准错误。
例子:
sudo -u wap PGPASSWORD="postgres" \
pg_dump -h localhost -U postgres \
-d n26n -n public -Fc -f /tmp/dump_file --verbose 2> logfile1