So verwenden Sie SSH-Pipes unter Linux
Wie die meisten Befehle unter Linux kann SSH mit der Eingabe- / Ausgabeumleitung über |
(Unix-Rohr). SSH kann auch mit dieser Pipeline verwendet werden. Das grundlegende Konzept hier ist zu verstehen, wie die Unix-Pipeline funktioniert.
Wenn Sie die Funktionsweise von Pipes verstehen, können Sie ernsthaft kreativ werden. Dieser Artikel beschreibt, was passiert, wenn Sie Unix-Pipes und SSH kombinieren. Es sollte beachtet werden, dass, da Unix-Pipes einfach alles sein können, es keine Zweifel geben wird, dass Befehle, die nicht auf dieser Liste stehen, ebenfalls nützlich wären.
Die Unix-Pipeline verstehen
Pipes unter Unix (und damit auch unter Linux) werden verwendet, um Programme miteinander zu verketten und miteinander zu arbeiten. Wenn Sie beispielsweise cat
, können Sie den Inhalt einer Datei anzeigen. Wenn Sie jedoch eine Pipe verwenden, können Sie den Befehl cat
mit dem Befehl more
verketten, damit die Datei leichter gelesen werden kann.
Katzendatei1 | Mehr
Die Grundidee ist hier: program1 fileX | program2
program1 fileX | program2
. Es ist jedoch nicht nur auf eine Datei und zwei Programme beschränkt. Piping kann ungefähr so fortgeschritten werden, wie Sie es benötigen, um mit so vielen Modifikatoren zu kommen, wie Sie denken können.
Hinweis: Einige Arten von Rohren können ohne Verwendung der |
. Manche verwenden stattdessen >
.
5 Nützliche SSH-Pipe-Befehle
Nun, da die Unix-Pipeline ein wenig Sinn ergibt, wollen wir sehen, was wir mit dem SSH-Protokoll und den Pipes machen können. Hier ist eine Liste mit einigen wirklich großartigen Pfeifen, die die meisten nützlich finden, wenn sie mit SSH kombiniert werden.
1. Komprimierte Dateiübertragung
Vergessen Sie nicht, scp
zu verwenden, um Dateien zu übertragen; Sie können es mit einem einfachen SSH-Pipe-Befehl tun. Keine Notwendigkeit, etwas zu installieren.
tar czf - / home / lokaler Benutzer / Dateiordner | ssh [email protected] tar -xvzf -C / home / remoteuser /
Dies verwendet das tar-Programm, um Ihre Daten lokal zu komprimieren und wird dann über SSH geleitet. Von dort empfängt der Remote-Computer die Datei und extrahiert sie in den angegebenen Ordner. Sie werden nie ein .tar-Archiv sehen, aber es wird eines verwendet.
2. Ausführen eines lokalen Skripts auf einem Remotecomputer (oder Remote auf einem lokalen Computer)
Haben Sie ein Skript auf Ihren Computer geschrieben und möchten es schnell testen? Keine Notwendigkeit, die Datei dorthin zu schieben oder ähnliches. Verteilen Sie Ihre lokale Datei einfach per SSH und führen Sie sie stattdessen auf diese Weise aus!
ssh [email protected] 'bash -s' <scriptfile.sh
Mit diesem Befehl entfernen Sie die Notwendigkeit, Dateien auf entfernte Maschinen zu verschieben, um Shell-Skripte auszuführen. Es spart auf lange Sicht viel Zeit.
3. Remote-Festplattensicherung
Möchten Sie Ihren Computer auf Ihrem Remote-Computer sichern, ohne die Festplatte physisch aus dem Gerät nehmen und anschließen zu müssen? Es ist einfach zu machen, und mit einem SSH-Rohr, nicht weniger. So funktioniert das:
sudo dd if = / dev / sda | ssh [email protected] 'dd of = sda.img'
Dies verwendet den Befehl dd
. Es verwendet Ihr lokales Laufwerk (sda) als Quelle, und dann leitet es die Ausgabe über SSH, um in eine rohe Bilddatei geschrieben zu werden.
Hinweis: Das Laufwerk, das Sie sichern möchten, hat möglicherweise eine andere Bezeichnung. Verwenden Sie den Befehl lsblk
um herauszufinden, welches Laufwerk Sie lsblk
. Dieser Befehl teilt Ihnen mit, was /dev/
im if=
Teil für den obigen Befehl zu verwenden ist.
4. Wiederherstellung der Remote-Festplatte
Möchten Sie das Image wiederherstellen, das Sie gerade auf Ihrem Computer gesichert haben? Es ist einfach. Diesmal arbeitet der Befehl umgekehrt. Wenn das Laufwerk, auf das Sie wiederherstellen, anders benannt ist als das, was im Beispiel aufgeführt ist, verwenden Sie den Befehl lsblk
, um herauszufinden, wo /dev/
es aufgelistet ist.
ssh [email protected] 'dd if = sda.img' | dd von = / dev / sda
Führen Sie diesen Befehl aus, und die von Ihnen erstellte IMG-Datei wird über das Netzwerk auf der von Ihnen angegebenen Festplatte wiederhergestellt.
5. Senden Sie eine Datei
Senden einer einzelnen Datei über SSH ist einfach. So machen Sie das mit Rohren.
Katzendatei | ssh [email protected] "cat> remote"
Dieser Befehl verwendet den Befehl cat, um eine Datei über eine Pipe zu senden. Sie können diese Datei auch mit dem folgenden Befehl abrufen:
ssh [email protected] "cat> remote" <Datei
Fazit
Obwohl es nicht so beeindruckend aussieht, können Pipes die Art und Weise, wie Sie Befehle unter Linux verwenden, vereinfachen und umwandeln. Obwohl diese Liste einige der nützlichsten zeigt, ist es nur die Spitze des Eisbergs. Mit der Vielseitigkeit der vertikalen Bar sind die Möglichkeiten, Dinge durch SSH zu leiten, endlos.
Kennen Sie irgendwelche guten SSH-Rohrleitungsbefehle? Sag uns unten!
Bildquelle: Wikimedia commons