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.