Holen Sie sich Dateien von Linux mit paramiko und scp [Python]

zunaechst

Früher habe ich jeden Monat eine feste Image-Datei von einem festen Server abgerufen und regelmäßig Besprechungsmaterialien erstellt. Es war mühsam, in WinSCP einzutauchen und es zu bekommen, deshalb habe ich beschlossen, es mit Python zu automatisieren.

Als ich es überprüfte, schien es, dass ich es mit paramiko und scp machen konnte, also versuchte ich es.

Betriebsumgebung

Ausführungsseite: Windows Server 2012 Erhalten von: CentOS Linux 7

Installation

Für mit dem Internet verbundene Terminals ist normales Pip in Ordnung

py -m pip install paramiko

Wenn Sie sich in einer Offline-Umgebung befinden, laden Sie sie einmal herunter und installieren Sie sie anschließend.

py -m pip download -d C:\tmp --no-binary :all: paramiko

Als ich den obigen Befehl eingegeben habe ERROR: Command errored out with exit status 1: Ich habe den Fehler erhalten und konnte ihn nicht herunterladen. Nach einer Weile zu kämpfen

py -m pip download -d C:\tmp paramiko

Ich konnte es unter herunterladen. Die Option "--no-binary" lädt die Quelle herunter, nicht die Binärdatei Es ist etwas, das es weniger anfällig für die Umwelt macht, aber es scheint nicht gut damit zu funktionieren. Bringen Sie die heruntergeladene Datei zum Installationsziel und installieren Sie sie mit dem folgenden Befehl.

pip install --no-index --find-links=tmp paramiko

Ich war mir nicht sicher, warum ich es nicht auf die übliche Weise tun konnte, aber in meiner Umgebung funktioniert es gut mit den oben genannten.

verwenden

Versuchen wir, "paramiko importieren" zu machen. Wenn Sie dies nicht können, liegt ein Problem mit der Installationsmethode vor.

Dateiübertragungscode

Zuerst werde ich den notwendigen Code eingeben.

import paramiko
import scp

#Server-Anmeldeinformationen
host = "IP Adresse"
user = "Nutzername"
pas  = "Passwort"

#Ausgabe Verzeichnis
out_path = r"C:\temp"

#Zieldateipfad
target_path = "/var/tmp/hoge.log"

#Serververbindung
with paramiko.SSHClient() as sshc:
  sshc.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  sshc.connect(hostname=host, port=22, username=user, password=pas)

  #Kopierverarbeitung durch SCP
  with scp.SCPClient(sshc.get_transport()) as scpc:
    scpc.get(remote_path=target_path, local_path=out_path)

Erläuterung

Ich habe noch keine verschiedenen Dinge ausprobiert, daher verstehe ich die Details nicht, aber irgendwie.

    scpc.get(remote_path=target_path, local_path=out_path)

In Bezug auf die beiden Argumente hier scheint es, dass nur der Zeichenkettentyp akzeptiert wird. Konvertieren Sie ein praktisches * Path * -Objekt in einen String mit str () usw., bevor Sie es übergeben. Übrigens, auch wenn Sie das Element nicht deklarieren

scpc.get(target_path, out_path)

Es funktioniert gut mit. Da diese Funktion jedoch andere Argumente hat, wird sie als Magie angegeben.

Benutzerfreundlichkeit

Ich fand es einfach und sehr einfach zu bedienen. Unter Linux lautet der Hierarchiebegrenzer "/" anstelle von "", sodass die Kombination mit einer einfachen Zeichenfolge einfach ist. (Natürlich kann Windows \ auch als Zeichenfolge behandelt werden.)

In meinem Fall habe ich die Zieldateiliste während des Loops wie unten gezeigt erstellt.

    for day in day_list:
      target_list.append(f"{port}/result{port}-{day}.png ")

Sie können Befehle auch mit paramiko ausführen, dies wird jedoch separat zusammengefasst.

Recommended Posts

Holen Sie sich Dateien von Linux mit paramiko und scp [Python]
Lesen und verwenden Sie Python-Dateien aus Python
Von Python bis zur Verwendung von MeCab (und CaboCha)
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Rufen Sie Optionen in Python sowohl aus JSON-Dateien als auch aus Befehlszeilenargumenten ab
Erhalten Sie E-Mails von Google Mail und beschriften Sie sie mit Python3
Holen Sie sich die ASP Datepicker-Steuerung mit Python und Selen und automatisieren Sie sie
Kopieren Sie S3-Dateien mit GSUtil von Python nach GCS
Mit Python abflachen
[Python] Quotient und Überschuss erhalten
Visualisieren Sie die Pflanzenaktivität aus dem Weltraum mithilfe von Satellitendaten und Python
Kopieren Sie mit Python rekursiv Dateien aus dem Verzeichnis direkt unter dem Verzeichnis
[Linux] Komprimieren Sie Ordner und übertragen Sie Dateien von Remote zu Local
Prognostizieren Sie das Geschlecht anhand des Namens mithilfe der Gender-API und von Pykakasi in Python
[Python] Zufällige Datenextraktion / -kombination aus DataFrame mit Random und Pandas
Nehmen Sie Zeitraffer von einer PC-Kamera mit Python, OpenCV auf
[Scp] Kopieren Sie Dateien lokal von einem Linux-Server mit ssh scp von Tera Term
[Python] Laden von CSV-Dateien mit Pandas
Verwenden von Rstan aus Python mit PypeR
Authentifizierung mit Tweepy-User-Authentifizierung und Anwendungsauthentifizierung (Python)
Hinweise zur Verwendung von MeCab aus Python
Bearbeiten Sie Dateien und Ordner in Python
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Über Python, aus und importieren, als
Verwenden von Cloud-Speicher aus Python3 (Einführung)
Rufen Sie den Wert des Dropdown-Menüs mit Python und Selen ab und legen Sie ihn fest
Python Holen Sie sich das kommende Wetter von der Wetter-API
Führen Sie Ansible über Python mithilfe der API aus
Holen Sie sich Daten von Twitter mit Tweepy
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Greifen Sie mit OAuth 2.0 von Python aus auf Tabellenkalkulationen zu
Versuchen Sie es mit Amazon DynamoDB von Python
Extrahieren Sie mit Python Zeichenfolgen aus Dateien
Lesen aus Textdateien und SQLite mit Python (+ Pandas), R, Julia (+ DataFrames)
Vorsichtsmaßnahmen und Fehlerbehandlung beim Aufrufen der .NET-DLL aus Python mit Pythonnet
Erhalten Sie Nachrichten von jedem der drei großen Mobilfunkunternehmen mithilfe von Django und der Nachrichten-API
Erhalten und schätzen Sie die Form des Kopfes mit Dlib und OpenCV mit Python
[AWS] Verwenden von INI-Dateien mit Lambda [Python]
Python> Wörterbuch> Werte ()> Alle Werte mithilfe von Werten abrufen ()
Holen Sie sich HTML von Element mit Python-Selen
Erhalten Sie Wechselkurse von offenen Wechselkursen in Python
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Holen Sie sich Suica Balance in Python (mit libpafe)
Holen Sie sich Tastenanschläge von / dev / input (python evdev)
Verwenden von Python und MeCab mit Azure Databricks
Mit openssl verschlüsselte Dateien werden mit openssl aus Python entschlüsselt
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Portieren und Ändern des Doublet-Solvers von Python2 auf Python3.
Holen Sie sich den Batteriestand von SwitchBot mit Python
Lesen und schreiben Sie JSON-Dateien mit Python
Holen Sie sich mit Python die Niederschlagswahrscheinlichkeit aus XML
Ich verwende Tox und Python 3.3 mit Travis-CI
Laden Sie Dateien in jedem Format mit Python herunter
[Amazon Linux] Wechsel von der Python 2-Serie zur Python 3-Serie
Holen Sie sich die Adresse von Längen- und Breitengrad
[Python] Holen Sie sich die Hauptfarbe aus dem Screenshot
Abrufen des Metrikverlaufs von MLflow in Python