Net als de meeste opdrachten op Linux, kan SSH worden gebruikt met invoer / uitvoer omleiding via | (Unix Pipe). SSH kan ook met deze pijplijn worden gebruikt. Het basisconcept hier is om te begrijpen hoe de Unix-pijplijn werkt.

Als je begrijpt hoe pijpen werken, kun je serieus creatief worden. Dit artikel behandelt wat er gebeurt wanneer u Unix-pipes en SSH combineert. Opgemerkt moet worden dat, omdat Unix-buizen zo ongeveer alles kunnen zijn, er geen twijfel over bestaat dat opdrachten die niet op deze lijst staan ​​ook nuttig zouden zijn.

De Unix-pipeline begrijpen

Pipes op Unix (en bij uitbreiding Linux) worden gebruikt om programma's aan elkaar te koppelen en ze samen te laten werken. Als u bijvoorbeeld cat, kunt u de inhoud van een bestand weergeven, maar als u een pipe gebruikt, kunt u het cat commando aan het commando More koppelen om het bestand gemakkelijker leesbaar te maken.

 cat file1 | meer 

Het basisidee hier is dit: program1 fileX | program2 program1 fileX | program2 . Het is echter niet alleen beperkt tot één bestand en twee programma's. Piping kan ongeveer net zo geavanceerd zijn als u nodig hebt om met zoveel mogelijk modifiers te werken als u maar kunt bedenken.

Opmerking: Sommige soorten buizen kunnen worden uitgevoerd zonder de | . Sommige gebruiken in plaats daarvan > .

5 Nuttige SSH-pijpcommando's

Nu de Unix-pijplijn een beetje logisch is, laten we eens kijken wat we kunnen doen met het SSH-protocol en de leidingen. Hier is een lijst met enkele echt geweldige buizen die de meeste handig zullen zijn bij het combineren met SSH.

1. Gecomprimeerde bestandsoverdracht

Vergeet het gebruik van scp om bestanden over te brengen; je kunt het doen met een eenvoudig SSH-pijpcommando. U hoeft niets te installeren.

 tar czf - / home / localuser / filefolder | ssh [email protected] tar -xvzf -C / home / remoteuser / 

Dit gebruikt het tar-programma om uw gegevens lokaal te comprimeren en wordt vervolgens over SSH geleid. Vanaf daar ontvangt het externe apparaat het bestand en extraheert het naar de map die u hebt opgegeven. Je zult nooit een .tar-archief te zien krijgen, maar het maakt er gebruik van.

2. Een lokaal script uitvoeren op een extern apparaat (of op afstand lokaal)

Heb je een script geschreven op je computer en wil je het snel uittesten? Het is niet nodig om het bestand ernaar te duwen of iets dergelijks. Stuur gewoon je lokale bestand via SSH en voer het op deze manier uit!

 ssh [email protected] 'bash -s' <scriptfile.sh 

Met dit commando verwijder je de noodzaak om bestanden naar externe machines te duwen om shell-scripts uit te voeren. Het bespaart op de lange termijn veel tijd.

3. Back-up op externe harde schijf

Wilt u een back-up van uw computer maken op uw externe computer zonder de harde schijf fysiek te verwijderen en aan te sluiten? Het is gemakkelijk te doen, en met een SSH-buis, niet minder. Dit is hoe het werkt:

 sudo dd if = / dev / sda | ssh [email protected] 'dd of = sda.img' 

Dit maakt gebruik van de opdracht dd . Het maakt gebruik van uw lokale schijf (sda) als bron en pijpt de uitvoer over SSH om naar een onbewerkt afbeeldingsbestand te worden geschreven.

Opmerking: de schijf waarvan u een back-up wilt maken, heeft mogelijk een andere aanduiding. Gebruik de opdracht lsblk om uit te zoeken naar welk station u een back-up wilt maken. Deze opdracht zal je vertellen wat /dev/ moet gebruiken in het if= gedeelte voor de bovenstaande opdracht.

4. Externe harde schijfrestauratie

Wil je die afbeelding herstellen waarvan je zojuist een back-up hebt gemaakt op je machine? Het is makkelijk. Deze keer werkt het commando in omgekeerde volgorde. Nogmaals, als de schijf waarnaar u herstelt anders wordt genoemd dan wat in het voorbeeld wordt vermeld, gebruikt u de opdracht lsblk om te achterhalen wat /dev/ it wordt weergegeven als.

 ssh [email protected] 'dd if = sda.img' | dd van = / dev / sda 

Voer deze opdracht uit en het .img-bestand dat u hebt gemaakt, wordt hersteld via het netwerk naar de harde schijf die u opgeeft.

5. Verzend een bestand

Het verzenden van een enkel bestand via SSH is eenvoudig. Hier is hoe het te doen met pijpen.

 kattenbestand | ssh [email protected] "cat> remote" 

Deze opdracht maakt gebruik van het cat-commando om een ​​bestand door een pijp te sturen. U kunt dat bestand ook ophalen met de volgende opdracht:

 ssh [email protected] "cat> remote" <bestand 

Conclusie

Hoewel het misschien niet zo indrukwekkend lijkt, kunnen pipes de manier waarop je commando's gebruikt onder Linux vereenvoudigen en transformeren. Hoewel deze lijst een aantal van de nuttigste is, is het slechts het topje van de ijsberg. Met hoe veelzijdig de verticale balk is, zijn de mogelijkheden om dingen door SSH te leiden eindeloos.

Ken je goede SSH-piping-commando's? Vertel het ons hieronder!

Image Credit: Wikimedia commons