AIX에서 "df" 명령을 사용하여 디스크 소비 정보를 확인하세요.

AIX에서 "df" 명령을 사용하여 디스크 소비 정보를 확인하세요.

공간을 많이 차지하는 파일 시스템을 얻으려고 합니다. df플래그(Gigabyte View)가 있는 명령을 사용하여 이 작업을 수행하려고 하는데 -g예상한 값을 얻을 수 없습니다.

df -g | sed 's/%//g'| awk '+$5>=75 {print}' | head -10

다음 명령을 사용하면 오류가 발생합니다.

df -g | sed 's/%//g'| awk '{print $5>=75}' | head -4

에러 메시지:

Syntax Error The source line is 1.
The error context is
               {print >>>  $5>= <<<
awk: 0602-502 The statement cannot be correctly parsed. The source line is 1.

다음은 AIX에서 df -g 명령의 출력입니다.

/tmp>df -g | sed 's/%//g'| awk '$5 >= 75 { print }' | head -4
Filesystem    GB blocks      Free Used    Iused Iused Mounted on
/dev/hd4          10.50     10.05    5    16492     1 /
/dev/hd2          25.50     18.15   29    64361     2 /usr
/dev/hd9var        2.50      0.72   72     4521     3 /var

전체 보기:

Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          10.50     10.05    5%    16492     1% /
/dev/hd2          25.50     18.15   29%    64357     2% /usr
/dev/hd9var        2.50      1.39   45%     4512     2% /var
/dev/hd3          21.50     20.24    6%     1495     1% /tmp

AIX 7.1 PowerPC_POWER8에서 사용해 보았습니다. 내가 뭘 잘못했는지 모르겠어요!

답변1

tr두 번 사용 하지 말고 awkawk를 한 번만 사용하십시오.

df -g | awk '{ sub("%", "", $4); if ($4 >= 75) { print $4, $7 }}' | sort -n

그러면 필드 4의 백분율 기호가 빈 문자열로 대체됩니다(제거). 나머지 값이 75 이상이면 필드 4와 7이 인쇄된 다음 파이프로 정렬됩니다.

메모리 기반 개선스테판의 답변 중 하나:

df -g | awk '$4+0 >= 75 { print $4, $7 }' | sort -n

"+0" 추가는 엄격한 문자열 기반 비교가 아닌 숫자 비교를 강제합니다.

제목을 유지하려면 조건을 다음과 같이 변경하세요.

df -g | awk 'NR < 2 || $4+0 >= 75 { print $4, $7 }' | sort -n

답변2

코드 에 집중하세요 awk:

awk '{print $5>=75}'

아마도

awk '$5 >= 75 { print }'

다섯 번째 필드의 값이 75보다 크거나 같으면 현재 입력 레코드가 출력됩니다.

얻은 출력으로 판단하면 백분율이 포함된 네 번째 필드인 것 같으므로 $4대신 확인하고 싶을 수도 있습니다.$5

df -g | tr -d '%' | awk '$4 >= 75 { print }' | head -4

오류 메시지를 보면: awkOpenBSD에서 사용됨(AIX와 정확히 같은 방식으로 불평하는 것 같음 awk) 원본 코드에는 인쇄할 수 없기 때문에 구문 오류가 있습니다 $5 >= 75(괄호 안에 넣지 않는 한, 이 경우 0으로 평가됩니다( false ) 또는 1(true)). mawk행동은 동일합니다.

GNU는 awk원래 코드의 구문을 허용하지만 여전히 사용자가 원하는 것은 아닙니다.

답변3

다음은 오류입니다... "파일 시스템 GB 블록 여유 공간이 Iused 마운트된 Iused를 사용하여 설치되었습니다."

해결책은 다음과 같습니다.

# df -g | grep Filesystem | sed 's/%//g'| awk '{print $5>=75}' | head -4

관련 정보