Aix tech tipp: Bye-bye hurkok – használja az “apply” parancsot

absztrakt technológia háttér hatszögletű alakzatokkal
az AIX parancssor egyik legjobban őrzött titka az “apply” parancs.

soha nem hallottál róla? Nos, Isten hozott a klubban. Két kollégámmal több mint 60 éves tapasztalattal rendelkeztünk az AIX-en, és köztünk szólva, soha nem találkoztunk az “apply” – vel.

Szóval, mit csinál, és miért kell megtanulni? Nagyon egyszerűen az” apply ” parancsot futtat egy paraméterkészlethez. Ez akkor hasznos, ha például egy egész lemez vagy más eszköz hangolási paraméterét szeretné megváltoztatni. Vagy talán fel kell sorolnia néhány információt számos fájlból. A barátod “alkalmaz”.

ha már ismeri néhány alapvető szkriptet, akkor valószínűleg látni fog némi hasonlóságot a “for” ciklus futtatásával.

itt az apply parancs alapvető használata. Alkalmazzuk az “echo” parancsot a szavak listájára.

apply "echo" all cows eat grassallcowseatgrass

nem túl izgalmas, azt hiszem, de a szintaxis sokkal könnyebb, mint egy “for” hurok használata. Itt van, hogyan nézne ki:

for i in all cows eat grassdoecho $idone

az “apply” gombbal csak az “apply” parancsot kell megadnia (“echo”, ebben a példában).

mi lenne, ha a szarvasmarha kulináris szokásairól szóló szavakat valamivel technikaibbra cserélnénk? Felsorolom a fizikai kötetek attribútumait.

az attribútumok felsorolására szolgáló parancs a következő lenne:

lsattr –El hdiskN

tehát az “Alkalmaz” parancs használatához a következő lenne:

apply "lsattr –El" hdisk0

valószínű, hogy ezt több lemezre szeretné megtenni; talán még az AIX rendszer összes lemezét is. A lemezek felsorolásához használhatja ezt a parancsot:

lsdev –c disk –F name

ez olyan lemezek listáját hozná létre, mint például:

hdisk0hdisk1hdisk2

és így tovább.

az apply parancsban a lemezek egyesével történő felsorolása helyett megadhatja a felsorolás parancsát. Vagy backticks-ben kell lennie:

`lsdev –c disk –F name`

vagy használja a $ (command ) szintaxist:

$(lsdev –c disk –F name)

itt az ideje, hogy mindent összerakjunk. Mivel az lsattr parancs, amelyet a lemezek listájára alkalmazunk, szóközökkel rendelkezik, idézőjelbe kell tennie:

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

ez nagyon hasznos lehet, ha változtatni akar, is.

itt van a parancs a sor mélységének megváltoztatására egy lemezre:

chdev –l hdisk0 –a queue_depth=16 –P

ehhez az összes lemezre le kell cserélnie a lemez nevét (hdisk0) a következő névvel: %1. Ez jelzi az apply parancs minden listájában létrehozott első paramétert.

itt vagyunk:

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

így hajthat végre egy farok parancsot, hogy megnézze több naplófájl utolsó 20 sorát:

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

azt gondolhatja, hogy csak futtathatja ezt:

tail -20 *.log

de a tail parancs egyszerre csak egy fájlt képes feldolgozni.

íme egy másik példa. Tegyük fel, hogy biztonsági másolatot szeretne készíteni egy fájlkészletről, mielőtt megváltoztatná őket. Ennek sokféle módja van, de az apply parancs nagyon jól működne:

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

miután megszokta az apply parancs kissé szokatlan szintaxisát, valószínűleg imádni fogja. Mindig használom, különösen, ha egy sorban futó parancsot kell kapnom.

Anthony English, aki 1991 óta dolgozik IBM rendszereken, látta, hogy az AIX és a virtualizáció hogyan képes kezelni mindenféle üzleti környezetet. Az informatika területén elismert szerző, blogján http://anthonyenglish.com.aucímen ír az üzleti rendszerek fejlesztéséről. Anthony az ausztráliai Sydney-ben él feleségével és hét gyermekével.

Leave a Reply

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.