필터 출력

필터 출력
for i in $(cat HPE_FRAMES_IP); do  ssh Reports@$i showsys | awk '{print $2,$5}' | column -t ; ssh Reports@$i showpd -degraded -failed | awk '{print $1,$2,$3,$5}' ; done | grep -v "MiB" | grep -v "total"
--Name---  Nodes
AN4ZX8401  MXN6232L4X
No PDs listed
----Name-----  Nodes
bga1ZX84-3128  4C17253128
No PDs listed
---Name---  Nodes
ZZ2ZX20841  CZ3741XP9X
No PDs listed
--Name---  Nodes
ZZ2ZX8401  MXN6102C7F
No PDs listed
--Name---  Nodes
ZZ2ZX8402  2MT814A12A
No PDs listed
--Name---  Nodes
CR3ZX8401  2M263601BJ
Id CagePos Type State
175 9:15:0 FC failed
---Name---  Nodes
ZZZZX20841  CZ3741X5K8
Id CagePos Type State
18 4:2:0 SSD degraded
-------Name-------  Nodes
ZZZZX8401_Full_DNA  MXN54823JY
No PDs listed
--Name---  Nodes
ZZZZX8402  MXN6102CAF
No PDs listed
-------Name-------  Nodes
ZZZZX8403_Full_DNA  MXN6192JEW
No PDs listed

다음 코드는 원하는 출력을 제공하지만 다음 형식을 사용하여 이 출력을 CSV 파일로 리디렉션해야 합니다.

showpd 및 showsys 명령의 실제 출력이 저하되거나 실패한 경우에만 출력을 인쇄하고 싶습니다.

원하는 출력은 다음과 같아야 합니다.

--Name---,Nodes
CR3ZX8401,2M263601BJ
Id,CagePos,Type,State
175,9:15:0,FC,failed

---Name---,Nodes
ZZZZX20841,CZ3741X5K8
Id,CagePos,Type,State
18,4:2:0,SSD,degraded

질문은 다음과 같이 업데이트됩니다.

showpd 출력에는 성능이 저하되고 실패한 출력이 여러 개 있을 수 있으며, 이 경우 -B3을 사용한 인쇄는 작동하지 않습니다... 다음 패턴이 출력되면 어떻게 될까요?

'---Name---,Nodes 
FM1HP20841,CZ3741X5K8 
Id,CagePos,Type,State 
18,4:2:0,SSD,degraded 
18,4:2:1,SSD,failed 

답변1

이 시도,

for i in $(cat HPE_FRAMES_IP); do ssh Reports@$i showsys | awk '{print $2","$5}' ; ssh Reports@$i showpd -degraded -failed | awk '{print $1","$2","$3","$5}' ; done | grep -v "MiB" | grep -v "total" | egrep -B3 "failed|degraded" | sed 's/---Name/\n---Name/g' > file.csv
  • 쉼표를 큰따옴표로 묶으세요.awk
  • 제거하다column
  • 그런 다음 키워드를 사용하여 grep을 확장하십시오.
  • -B3일치하는 키워드 앞에 3줄을 인쇄합니다.
  • sed예상되는 출력으로 "이름" 앞에 새 줄을 추가하는 것입니다.

답변2

Grep이 여기서 도움을 드릴 것입니다:

for i in $(cat HPE_FRAMES_IP); do  ssh Reports@$i showsys | awk '{print $2,$5}' | column -t ; ssh Reports@$i showpd -degraded -failed | awk '{print $1,$2,$3,$5}' ; done | grep -v "MiB" | grep -v "total" | grep -B 4 -iE "failed|degraded"

개정하다:

파이프를 통한 출력grep -B 4 -iE "실패 | 다운그레이드"

관련 정보