2010-05-05 78 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

相關問題