Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Übertragen von Dateien mit Junos PyEZ

ZUSAMMENFASSUNG Verwenden Sie Junos PyEZ, um SCP-Dateien (Secure Copy) zwischen dem lokalen Host und einem Junos-Gerät zu sichern.

Junos PyEZ bietet Dienstprogramme, mit denen Sie Dateiverwaltungsaufgaben auf Junos-Geräten ausführen können. Sie können die Junos PyEZ-Klasse jnpr.junos.utils.scp.SCP verwenden, um das Kopieren von Dateien zwischen dem lokalen Host und einem Junos-Gerät zu sichern.

Die SCP open() Methode and close() stellt die Verbindung mit dem Gerät her und beendet sie. Wenn die Clientanwendung nur Dateikopiervorgänge ausführt, kann sie daher Aufrufe der Device open() and-Methode close() auslassen. Instanzen der SCP Klasse können als Kontext-Manager verwendet werden, die automatisch die open() and-Methoden close() aufrufen. Zum Beispiel:

SCP ermöglicht es Ihnen, den Fortschritt von Übertragungen mithilfe des progress Parameters zu verfolgen. Standardmäßig SCP werden keine Fortschrittsmeldungen ausgegeben. Legen Sie fest progress=True , dass Standardfortschrittsmeldungen in Übertragungsabschlussintervallen von 10 Prozent oder mehr ausgegeben werden.

Alternativ können Sie eine benutzerdefinierte Funktion definieren, um Statusmeldungen zu drucken, und dann den progress Parameter auf den Namen der Funktion setzen. Die Funktionsdefinition sollte zwei Parameter enthalten, die der Geräteinstanz und der Statusmeldung entsprechen. Zum Beispiel:

Das folgende Beispielprogramm überträgt die scp-test1.txt - und scp-test2.txt-Dateien vom lokalen Host in das Verzeichnis /var/tmp auf dem Zielgerät und anschließend die Meldungsprotokolldatei vom Zielgerät in ein Protokollverzeichnis auf dem lokalen Host. Das Meldungsprotokoll wird umbenannt, sodass der Hostname des Geräts an den Dateinamen angehängt wird. Im Beispiel werden SSH-Schlüssel zur Authentifizierung verwendet, die bereits auf dem lokalen Host und dem Gerät konfiguriert sind.

Zu Vergleichszwecken verwendet das Programm sowohl die Standard-Fortschrittsmeldungen als auch benutzerdefinierte Meldungen, die in der Funktion namens logdefiniert sind, um den Fortschritt der Übertragungen zu verfolgen.

Der Fortschritt der Übertragungen wird an die Standardausgabe gesendet. Die Standardausgabe (progress=True) enthält den Gerätenamen, die zu übertragende Datei und den Fortschritt der Übertragung sowohl in Bytes als auch in Prozent.

Die benutzerdefinierte Funktion erzeugt in diesem Fall eine ähnliche Ausgabe.

Geben Sie nach dem Ausführen des Programms den file list Befehl auf dem Zielgerät ein, um zu überprüfen, ob die scp-test1.txt - und scp-test2.txt-Dateien in das richtige Verzeichnis kopiert wurden.

Auf dem lokalen Host sollte die Meldungsprotokolldatei , die umbenannt wird, um den Hostnamen des Geräts zu enthalten, im Protokollverzeichnis vorhanden sein.

Standardmäßig fragt Junos PyEZ die SSH-Standardkonfigurationsdatei unter ~/.ssh/config ab, sofern vorhanden. Sie können jedoch beim Erstellen der Geräteinstanz eine andere SSH-Konfigurationsdatei angeben, indem Sie den ssh_config Parameter in die Device Argumentliste aufnehmen. Zum Beispiel:

Wenn Sie den ssh_private_key_file Parameter in die Argumentliste aufnehmen, um eine bestimmte private SSH-Schlüsseldatei für die Authentifizierung zu definieren, verwendet die Instanz dieselbe Schlüsseldatei für die Device SCP Authentifizierung beim Übertragen von Dateien.

Die SCP Klasse bietet auch Unterstützung für ProxyCommand, mit dem Sie Dateien vom lokalen Host auf das Zielgerät über einen Zwischenhost übertragen können, der netcat unterstützt. Dies ist nützlich, wenn Sie sich nur über den Zwischenhost am Zielgerät anmelden können. Um ProxyCommand zu konfigurieren, fügen Sie der SSH-Konfigurationsdatei die entsprechenden Informationen hinzu. Zum Beispiel: