为了使用SFTP将大型数据库分区备份到远程计算机,我想使用databases dump命令并使用SFTP直接将其发送到远程位置。
当您没有足够的本地磁盘空间来创建备份文件,然后将其复制到远程位置时需要转储大型数据集时,这非常有用。
我尝试使用提供此功能的python + paramiko,但性能比使用本机openssh / sftp二进制文件传输文件要差得多。
有没有人知道如何使用Linux上的本机sftp客户端或者像paramiko这样的库? (但是一个在本地sftp客户端附近执行的操作)?
答案 0 :(得分:2)
如果您具有远程shell访问权限(ssh),则可以执行以下操作:
fancy-sql-dump-command --to-stdout | ssh me@remotehost "cat > my-dql-dump.sql"
Google“管道覆盖ssh”了解更多示例,例如this example using tar
答案 1 :(得分:0)
我建议sshfs,它通过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/