Am un script zilnic care preia statisticile hardware de pe toate serverele mele RHEL în fiecare noapte și le salvează într-un aaaammzz_daily.log fişier. Am și alte scripturi pe care le execut împotriva acestor fișiere pentru a extrage date specifice (de ex. DriveArrrayStatus, Stare hardware, DiskFreeSpace, etc.) pentru diferite sarcini.
Exemplu Stare hardware ieșire script:
Server: abc
** Fani **
Sănătate: Bine
** Surse de alimentare **
Redundanță: completă
Server: bcd
** Fani **
Sănătate: parțială
** Surse de alimentare **
Redundanță: jumătate
Server: cde
** Fani **
Sănătate: Jos
** Surse de alimentare **
Redundanță: niciuna
etc... pentru 44 de servere
Deoarece sunt rareori erori, aș dori să colorez liniile care arată orice fel de eroare atunci când rulez scriptul. Pot selecta liniile de analizat folosind grep:
./HardwareStatus | grep '^Sănătate\|^Redundanţă\|$'
Dar de aici trebuie să colorez NUMAI liniile analizate care NU se termină în răspunsurile lor satisfăcătoare respective:
./HardwareStatus | grep --color=auto -v 'Ok$\|Full$'
Am încercat să introduc instrucțiunea grep de selecție a liniilor la un al doilea grep sau folosind egrep, dar pur și simplu elimină orice linii care nu au răspunsuri satisfăcătoare din rezultatul scriptului.
Orice ajutor ar fi foarte apreciat.