iostat -En | nawk '/Hard Errors/ {line=$0;gsub(/.*Hard Errors:/,""); \
if($1>2) printf("%s\n",line); }'
이것의 출력은 다음과 같습니다
c0t1d0 Soft Errors: 0 Hard Errors: 5 Transport Errors: 0
하지만 내 경우에는 다음과 같이 출력을 표시해야 합니다.
warning about iostat hard error , transport error & soft errors > 2 on system1 is \
"c0t1d0 Soft Errors: 0 Hard Errors: 5 Transport Errors: 0".
하지만 하드 오류의 경우뿐만 아니라 위의 2가지 오류(하드 오류, 전송 오류, 소프트 오류) 중 하나라도 표시해야 하는 경우에도 마찬가지입니다.
답변1
내가 올바르게 이해했다면 다음과 같은 것을 찾고 있습니다.
$ iostat -En | nawk '/Hard Errors:/{if($4>2 || $7>2 || $10){
print "Iostat warning on system1, hard, soft or transfer errors > 2:\n"$0}}'
리눅스 버전에는 or 옵션이 iostat
없어서 확인할 수가 없습니다. 원하는 대로 작동하지 않으면 무엇을 구문 분석할지 확인할 수 있도록 명령 출력을 게시해 주세요.-E
-n
iostat