2010-05-05 79 views
2

为了使用SFTP将大型数据库分区备份到远程计算机,我想使用databases dump命令并通过使用SFTP将其直接发送到远程位置。使用SFTP将数据从STDOUT复制到远程计算机

当您没有足够的本地磁盘空间来创建备份文件,然后将其复制到远程位置时需要转储大型数据集时,这非常有用。

我试过使用python + paramiko它提供了这种功能,但性能比使用本地openssh/sftp二进制文件传输文件差得多。

有没有人有任何想法如何做到这一点无论是在Linux上的本地sftp客户端,或像paramiko一些库? (但一个接近本地sftp客户端)?更多的例子,例如“通过SSH管”

fancy-sql-dump-command --to-stdout | ssh [email protected] "cat > my-dql-dump.sql" 

谷歌:

回答

2

如果您有远程shell访问(SSH),你可以这样做以下this example using tar

+1

这将SFTP服务器,这些服务器还提供SSH上工作有一个shell,并且可以访问猫,但是对于不提供shell的服务器或者不提供“cat”的服务器不起作用,这就是为什么我想要使用本机sftp – freddie 2010-05-05 13:05:11

0

我推荐sshfs,它运行在SFTP协议上。

一些操作系统发行版已经该包裹的,别人你需要编译,例如在RedHat企业版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/ 
+0

不幸的是,sshfs性能不是很好(认为传输> 10GB文件一次)。所以谢谢你的建议,但这仍然不能解决我的问题。 – freddie 2010-05-06 06:33:26

相关问题