2

为了使用 SFTP 将大型数据库分区备份到远程计算机,我想使用数据库转储命令并使用 SFTP 直接将其发送到远程位置。

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

我尝试使用提供此功能的 python + paramiko,但性能比使用本机 openssh/sftp 二进制文件传输文件要差得多。

有没有人知道如何使用 linux 上的本机 sftp 客户端或 paramiko 之类的库来执行此操作?(但执行接近本机 sftp 客户端的一种)?

4

2 回答 2

2

如果您有远程 shell 访问 (ssh),则可以执行以下操作:

fancy-sql-dump-command --to-stdout | ssh me@remotehost "cat > my-dql-dump.sql"

谷歌“通过 ssh 管道”获取更多示例,例如这个使用 tar的示例。

于 2010-05-05T11:07:37.020 回答
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/
于 2010-05-05T14:38:34.660 回答