Sådan køres Linux-kommandoer samtidigt med GNU Parallel

Sådan installeres GNU Parallel TechRepublic's Jack Wallen fører dig gennem den trinvise proces med installation af GNU Parallel kommandolinjeværktøj.

Når du kører kommandoer på Linux, hvad enten de er ad gangen ad gangen eller fra et bash-script, kører disse kommandoer i rækkefølge. Den første kommando kører, efterfulgt af den anden, efterfulgt af den tredje. Indrømmet, tiden mellem kommandoer er så ubetydelig, det blotte øje ville ikke bemærke det. I nogle tilfælde er det måske ikke det mest effektive middel til at køre kommandoer. Hvis du befinder dig i en situation, hvor du har brug for flere kommandoer, der skal køres nøjagtigt på samme tid (sige på dit datacenter Linux-servere), hvad gør du så?

Datacenter skal læses

  • 8 datacenters forudsigelser for 2020
  • 7 netværksforudsigelser for 2020: Automation, edge computing, Wi-Fi 6 og mere
  • Bedste praksis for server virtualisering og tip til, hvad man ikke skal gøre
  • Kvanteberegning: Syv sandheder, du har brug for at vide

Du vender dig til GNU Parallel.

Hvad er GNU-parallel?

GNU Parallel er et shell-værktøj, der gør det muligt at udføre job parallelt ved hjælp af en eller flere computere. Et job kan være en enkelt kommando eller input fra en fil, der indeholder ting som en liste over kommandoer, en liste over filer, en liste over værter, en liste over brugere, en liste med URL'er eller en liste med tabeller. GNU Parallel kan også tage information fra en pipette-kommando.

Jeg vil gerne vise dig, hvordan du installerer GNU Parallel og derefter det grundlæggende i brugen af ​​det.

Installation

Jeg vil demonstrere på en Ubuntu Server 16.04. GNU Parallel kan installeres på næsten enhver Linux-distribution, så hvis du bruger en anden distribution end Ubuntu, skal du ændre installationskommandoen, så den passer til din platform.

Da GNU Parallel findes i standardlageret, er installationen enkel. Åbn et terminalvindue og udsend kommandoen:

 sudo apt installeres parallelt 

Når installationen er afsluttet, ønsker du at afbryde citeringsbanneret. Dette er på plads for at sikre, at alle, der bruger GNU Parallel til publican-citerer udviklerne.

For at dæmpe citeringsbanneret skal du udstede kommandoen parallelt - bibliotek . Derefter får du citeringsinformationen og bliver bedt om at skrive citerer ( figur A ).

Figur A

Hvis du ikke ønsker at nævne udviklerne, kan du altid betale 10000 EUR.


Du er nu klar til at bruge GNU Parallel.

Anvendelse

Den enkleste måde at demonstrere GNU Parallel på er at bruge ekko-kommandoen. Lad os sige, at vi vil bruge ekko-kommandoen til at udskrive en to tre tre fire. Kommandoen for dette ville være:

 ekko "en to tre fire fire" 

Outputet ville se sådan ud i figur B.

Figur B

Vores ekko output.


Samme kommando ved hjælp af parallel ville være:

 parallelt ekko ::: en to tre fire fire 

Outputet til ovenstående ville se sådan ud i figur C.

Fig

Vores parallelle version af ekko.


Vi kunne også give to stykker inputdata som sådan:

 parallelt ekko ::: 1 2 3 4 ::: ABCD 

Outputet til ovennævnte kommando vil se ud som vist i figur D.

Figur D

To inputkilder fra kommandolinjen.


Som du kan se, afgrænser vi kommandoen fra inputvariablerne med :::-tegnene. Du kan også bruge filer som input til kommandoen. Lad mig demonstrere. Opret to filer. Den første, navngivet abc-fil med indholdet:

 ABCDEFGHIK 

Den anden fil, kaldet 123-fil, har indholdet:

 1 2 3 4 5 6 7 8 9 10 

Nu bruger vi disse to filer til at generere output. Kommandoen til dette kan se ud:

 parallel-en abc-fil-et 123-fil ekko 

Outputet ser ud som vist i figur E.

Figur E

Input fra en fil ser sådan ud.


Hvis dine input-filer ikke er af samme længde, hvad gør du så? GNU Parallel pakker output af den kortere fil, så den matcher med den længere fil. Outputet vil være det samme som i figur E (ovenfor). Hvad nu, hvis vi ønsker at få lidt mere kontrol over dette output. I stedet for at GNU parallelt gentager (For at matche inputene):

 1 A 1 A 1 A 1 A 1 A 2 B 2 B 2 B 2 B 2 B 

Det er muligt at gøre brug af argumentet -applik . Lad os sige, at vi har 10-filen med 10 inputlinjer (12345678910 - et tal pr. Linje) og 5-filen med fem linjer input (ABCDE - et tal pr. Linje). Giv kommandoen:

 parallel --applik-en 10-fil-et 5-fil ekko 

Du vil se, at GNU Parallel kun udskriver indholdet af 10-filer én gang, men gentager indholdet af 5-filer, indtil det matcher længden på 10-fil ( figur F ).

Figur F

Indpakning af output med - så hurtigt som muligt.


Brug med kommandoer

Indtil videre har vi lige brugt ekko-kommandoen til at sende tegn. Lad os se et eksempel, der faktisk bruger kommandoer. Lad os sige, at vi har et bibliotek, der hedder TEST. Inde i den mappe er der en fil, der kaldes test og en undermappe, der kaldes 1, som indeholder filtesten og test2. Lad os sige, at vi vil omdøbe test til test1, omdøbe test1 til test2, tjære 1-biblioteket og derefter omdøbe det tarredede bibliotek. Vi kunne oprette en fil med følgende indhold:

 mv test test1 mv test1 test2 tar cfz 1.tar.gz 1 mv 1.tar.gz 2.tar.gz 

Gem og luk filen, ved at navngive den job. Nu tager vi input fra job med den parallelle kommando, sådan:

 parallel --jobs 4 <job 

Indstillingen --jobs instruerer GNU Parallel, hvor mange kommandoer der er tilladt at køre. I vores tilfælde har vi 4 kommandoer. Hvis der var flere kommandoer end tilladte job, ville de resterende kommandoer blive placeret i en kø. Generelt er det sikkert at tillade flere job, end du har kommandoer. Så udsteder kommandoen:

 parallel --jobs 6 <job 

Ville være fint.

Der kommer ingen output fra kommandoen. Hvis du skifter til TEST-biblioteket, vil du se, at alt er ændret i henhold til vores input-kommandofil.

Skraber overfladen

Vi har kun lige ridset overfladen på GNU Parallel. Jeg anbefaler stærkt, at du giver den officielle GNU-parallelvejledning en læsning og ser denne video-tutorial-serie på Yutube, så du kan forstå kompleksiteten af ​​værktøjet (hvoraf der er mange). Men dette vil komme i gang på en vej til at hjælpe dit datacenter Linux-servere med at bruge kommandoer med mere effektivitet.

Datacenter Trends Nyhedsbrev

DevOps, virtualisering, hybrid sky, opbevaring og driftseffektivitet er blot nogle af de datacenteremner, vi vil fremhæve. Leveres mandage og onsdage

Tilmeld dig i dag

© Copyright 2021 | mobilegn.com