gpt4 book ai didi

ssh - 通过 ssh 将 psql 输出保存到本地文件?

转载 作者:行者123 更新时间:2023-12-02 14:14:31 25 4
gpt4 key购买 nike

我通过 ssh 连接到服务器并运行

psql

我想从服务器中提取数据库,但我无法在远程保存文件,因为我没有写权限。如何在本地保存?

最佳答案

而不是

ssh myhost psql

使用 ssh 隧道连接本地 psql到远程 PostgreSQL,所以你可以 \copy本地文件,例如
ssh -L 5599:localhost:5432 myhost

然后在该 session 打开时,在单独的本地终端 session 中:
psql -h localhost -p 5599

通过 ssh 隧道连接。这仅在远程系统允许来自 localhost (127.0.0.1/::1) 的 tcp/ip 连接时才有效。它不必允许来自远程节点的 tcp/ip PostgreSQL 连接。

或者,您可以:
ssh myhost psql -c '"copy mytable to stdout"' > local_file.csv

通过 ssh 将标准输出流式传输到本地文件。

注意两层引用,因为本地 shell 使用第一层,远程 shell 使用第二层。

通常最好的解决方案是启用 PostgreSQL 监听外部公共(public)端口,设置 SSL,并使用 hostssl pg_hba.conf 中的条目允许您使用 psql 通过 TCP/IP 直接连接使用 SSL。然后你就:
psql -h myhost

关于ssh - 通过 ssh 将 psql 输出保存到本地文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31074441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com