Einen per SSH gestarteten Download in einer lokalen Datei speichern
Wählen Sie zwischen einem lokalen Download über einen Proxy und einem entfernten Abruf mit anschließender Übertragung und halten Sie die Befehlsausgabe von den Bytes der Datei getrennt.
Einen Downloader über SSH auszuführen und einen lokalen Downloader über einen entfernten Proxy auszuführen, legt den Download an unterschiedlichen Orten ab:
| Anordnung | Wer ruft die Website ab? | Wohin wird die Datei geschrieben |
|---|---|---|
| Lokaler Downloader über einen entfernten Proxy | Der lokale HTTP-Client besitzt die Anfrage; der Proxy trägt sie | Der Ausgabepfad des lokalen Downloaders |
| Über SSH gestarteter Downloader | Ein Programm auf dem entfernten Rechner | Sein entfernter Pfad, sofern Daten nicht ausdrücklich zurücktransportiert werden |
Mit einem autorisierten SSH-Konto und entfernt installiertem curl können Sie das Artefakt über die Standardausgabe zurückholen:
ssh -T [email protected] 'curl --fail --silent --show-error https://downloads.example/file.bin' > file.partErsetzen Sie Beispielkonto und URL. Die Umleitung steht außerhalb des zitierten entfernten Befehls, daher öffnet die lokale Shell file.part. Platzieren Sie sie im entfernten Befehl, gehört der Pfad stattdessen zur entfernten Umgebung.
Verwenden Sie einen frischen temporären Pfad: Die lokale Shell kann diese Datei anlegen oder abschneiden, bevor der entfernte Vorgang gelingt. Prüfen Sie das SSH-Abschlussergebnis und das Artefakt, bevor Sie ihm seinen endgültigen Namen geben.
Die Standardausgabe darf nur die Bytes des Artefakts enthalten. Begrüßungen, Fortschrittsbanner oder Wrapper-Meldungen können sie beschädigen; Diagnosen gehören auf die Standardfehlerausgabe. Ein entfernter Befehl, der in seinen eigenen Dateinamen speichert, sendet möglicherweise überhaupt keine Bytes zurück. Bewahren Sie das Abschlussergebnis des Downloaders durch jeden Wrapper hindurch.
Stattdessen können Sie entfernt speichern und die Datei per SFTP übertragen. Wenn SSH bereits einen Proxy-Helfer verwendet, verwenden Sie diesen SSH-Host-Eintrag für die Übertragung erneut. Wenn das Ziel ein lokaler Proxy-Workflow ist, halten Sie den Downloader lokal und konfigurieren Sie seine unterstützte Proxy-Schnittstelle.
So oder so muss eine Datei, die Ihren Laptop erreichen soll, noch immer dessen Netzwerkverbindung überqueren. Die Wahl ändert die websitezugewandte Verbindung und den Prozess, der den Download ausführt.