2 Stimmen

Kopieren von Daten von STDOUT auf einen entfernten Rechner mit SFTP

Um große Datenbankpartitionen mit SFTP auf einem entfernten Rechner zu sichern, möchte ich den Befehl databases dump verwenden und ihn direkt mit SFTP an einen entfernten Ort senden.

Dies ist nützlich, wenn Sie große Datensätze auslagern müssen und nicht genügend lokalen Speicherplatz haben, um die Sicherungsdatei zu erstellen und sie dann an einen entfernten Ort zu kopieren.

Ich habe versucht, mit Python + paramiko das diese Funktionalität bietet, aber die Leistung ist viel schlechter als bei der Verwendung der nativen openssh/sftp-Binärdatei zur Übertragung von Dateien.

Hat jemand eine Idee, wie man dies entweder mit dem nativen sftp-Client auf Linux, oder eine Bibliothek wie paramiko (aber eine, die in der Nähe der nativen sftp-Client führt)?

2voto

Alphax Punkte 86

Wenn Sie über einen Remote-Shell-Zugang (ssh) verfügen, können Sie etwa wie folgt vorgehen:

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

Google "pipe over ssh" für weitere Beispiele, z.B. dieses Beispiel mit tar .

0voto

Tometzky Punkte 20675

Ich würde empfehlen sshfs das über das SFTP-Protokoll funktioniert.

Bei einigen Betriebssystemen ist dies bereits enthalten, bei anderen müssen Sie es kompilieren, z. B. bei RedHat Enterprise Linux 5.4+ oder seinen Klonen wie 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/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X