AIX tech tip: Bye-bye loops – käytä sen sijaan ”apply” – komentoa

Abstrakti teknologiatausta kuusikulmaisilla muodoilla
yksi AIX-komentorivin parhaiten säilyneistä salaisuuksista on ”apply” – komento.

Etkö ole kuullut siitä? Tervetuloa kerhoon. Meillä kahdella kollegalla ja minulla oli yli 60 vuoden yhteinen kokemus AIX: stä, ja keskenämme emme olleet kertaakaan törmänneet ”apply”: iin.

niin, mitä se tekee ja miksi sitä pitäisi opetella? Hyvin yksinkertaisesti, ”käytä” suorittaa komennon joukko parametreja. Se on hyödyllinen, esimerkiksi, jos haluat muuttaa tuning parametri koko joukko levyjä tai muita laitteita. Tai ehkä sinun täytyy luetella joitakin tietoja useista tiedostoista. Ystäväsi on”hae”.

jos olet jo perehtynyt joihinkin peruskirjoituksiin, tulet todennäköisesti näkemään joitakin yhtäläisyyksiä ”for” – silmukan pyörittämiseen.

tässä on apply-komennon peruskäyttö. Sovelletaanpa komentoa ”echo” sanaluetteloon.

apply "echo" all cows eat grassallcowseatgrass

ei kai hirveän jännittävä, mutta syntaksi on paljon helpompi kuin ”for” – silmukan käyttäminen. Tältä se näyttäisi:

for i in all cows eat grassdoecho $idone

kun ”Käytä”, sinun tarvitsee vain määrittää” Käytä”ja komento (”echo”, tässä esimerkissä).

miten olisi korvata nautojen ruokatottumuksia koskevat sanat jollain hieman teknisemmällä? Aion luetella ominaisuuksia joukko fyysisiä määriä.

komento attribuuttien luetteloimiseksi olisi:

lsattr –El hdiskN

niin, KÄYTTÄÄ” Käytä ” komento, se olisi:

apply "lsattr –El" hdisk0

on mahdollista, että haluat tehdä tämän useille levyille; ehkä jopa kaikille Aix-järjestelmäsi levyille. Levyjen luettelointiin voit käyttää tätä komentoa:

lsdev –c disk –F name

se tuottaisi listan levyistä, kuten:

hdisk0hdisk1hdisk2

ja niin edelleen.

käytä-komennossa voit määrittää komennon, jolla levyt listataan yksitellen. Sen on oltava joko backticks:

`lsdev –c disk –F name`

tai käytä $ (komento) syntaksia:

$(lsdev –c disk –F name)

nyt on aika koota kaikki yhteen. Koska lsattr-komennossa, jota sovellamme levyluetteloon, on välilyöntejä, sinun täytyy laittaa se lainausmerkeissä:

apply "lsattr –El" $(lsdev –c disk –F name)

tämä voi olla todella kätevä, jos haluat tehdä muutoksia, liian.

tässä komento muuttaa jonosyvyyttä yhdelle levylle:

chdev –l hdisk0 –a queue_depth=16 –P

tehdäksesi tämän kaikille levyille, korvaat levyn nimen (hdisk0) %1: llä. Tämä osoittaa ensimmäisen parametrin, joka on luotu kuhunkin apply-komennon luetteloon.

Here we go:

apply "chdev –l %1 –a queue_depth=16 –P" $(lsdev –c disk –F name)

Näin teet tail-komennon, jolla voit tarkastella useiden lokitiedostojen 20 viimeistä riviä:

apply "tail -20 %1" $(ls *.log)

saatat ajatella, että voisit vain juosta tämän:

tail -20 *.log

mutta tail-komento voi käsitellä vain yhden tiedoston kerrallaan.

Tässä toinen esimerkki. Oletetaan, että haluat tehdä varmuuskopion joukko tiedostoja ennen niiden muuttamista. On olemassa paljon tapoja tehdä tämä, mutta käytä komento toimisi erittäin hyvin:

apply "cp %1 %1.bak" $(ls *.cfg)

kun totut apply-komennon hieman epätavalliseen syntaksiin, alat todennäköisesti rakastaa sitä. Käytän sitä koko ajan, varsinkin jos minun täytyy saada komento käynnissä yhdellä rivillä.

työskenneltyään IBM: n järjestelmien parissa vuodesta 1991 lähtien Anthony English on nähnyt, miten AIX ja virtualisointi pystyvät hallitsemaan kaikenlaisia liiketoimintaympäristöjä. Hän on tunnettu IT-alan tekijä ja kirjoittaa yritysjärjestelmien parantamisesta blogissaan osoitteessa http://anthonyenglish.com.au. Anthony asuu Sydneyssä Australiassa vaimonsa ja seitsemän lapsensa kanssa.

Leave a Reply

Vastaa

Sähköpostiosoitettasi ei julkaista.