Postgresql 使用SFTP将数据从标准输出复制到远程计算机
为了使用SFTP将大型数据库分区备份到远程机器,我想使用databasesdump命令并使用SFTP将其直接发送到远程位置 当您没有足够的本地磁盘空间来创建备份文件,需要转储大型数据集,然后将其复制到远程位置时,这非常有用 我尝试过使用python+,它提供了此功能,但性能比使用原生openssh/sftp二进制文件传输文件差得多Postgresql 使用SFTP将数据从标准输出复制到远程计算机,postgresql,ssh,sftp,database-backups,remote-backup,Postgresql,Ssh,Sftp,Database Backups,Remote Backup,为了使用SFTP将大型数据库分区备份到远程机器,我想使用databasesdump命令并使用SFTP将其直接发送到远程位置 当您没有足够的本地磁盘空间来创建备份文件,需要转储大型数据集,然后将其复制到远程位置时,这非常有用 我尝试过使用python+,它提供了此功能,但性能比使用原生openssh/sftp二进制文件传输文件差得多 有人知道如何使用linux上的本机sftp客户端或类似paramiko的库来实现这一点吗?(但在本机sftp客户端附近执行的除外)如果您具有远程shell访问(ssh
有人知道如何使用linux上的本机sftp客户端或类似paramiko的库来实现这一点吗?(但在本机sftp客户端附近执行的除外)如果您具有远程shell访问(ssh),则可以执行以下操作:
fancy-sql-dump-command --to-stdout | ssh me@remotehost "cat > my-dql-dump.sql"
Google“pipe over ssh”获取更多示例,例如,我推荐使用的是SFTP协议
有些操作系统发行版已打包,而其他发行版则需要编译,例如在RedHat Enterprise Linux 5.4+或其克隆版(如CentOS)上:
sudo yum install fuse-devel glib-devel
sudo usermod -a -G fuse "$USER"
cd /tmp
tar xzf sshfs-fuse-2.2.tar.gz
cd sshfs-fuse-2.2
./configure
make
sudo make install
# relogin
mkdir /tmp/servername
sshfs servername:directory /tmp/servername/
ls /tmp/servername/
这将在sftp服务器上起作用,这些服务器也提供了带shell的ssh和对cat的访问,但对不提供shell或不提供“cat”的服务器不起作用,这就是为什么我想使用本机sftp。不幸的是,sshfs性能不是很好(一次传输大于10GB的文件)。所以谢谢你的建议,但这仍然不能解决我的问题。