10G보다 큰 폴더를 나열하고 적절한 소유자에게 사용량을 보냅니다.

10G보다 큰 폴더를 나열하고 적절한 소유자에게 사용량을 보냅니다.

우리 환경에는 모든 사용자 홈 디렉토리를 포함하는 NFS 마운트가 있습니다.

홈 디렉터리 크기가 10G보다 큰 사용자를 찾아 알림을 보내고 싶습니다. 나는 시도했다:

du -sh * | sort -hr   

이것은 매력적으로 작동하지만 크기가 10G보다 큰 디렉터리를 추출하는 명령을 찾을 수 없습니다.

나는 그것을 시도했지만 find . -size +10G -exec ls -lhS {} \;성공하지 못했습니다.

크기가 10G보다 큰 디렉토리를 찾거나 추출하는 가장 좋은 방법은 무엇입니까?

답변1

이것은 트릭을 수행해야합니다.

첫 번째 열(크기)이 10GB를 초과하면 두 번째 열(디렉터리 이름)이 출력됩니다.

du -sk * | awk '$1 > 10485760 { print $2 }'

또는 요청 시 아래와 같이 사람이 읽을 수 있는 형식으로 제공됩니다. 정규식은 열 1이 G(기가바이트)로 끝나는 것을 보장하고 substr 부분은 열 1에서 마지막 문자를 제거하고 10보다 큰지 확인합니다.

du -sh * | awk '$1 ~ /G$/ && substr($1,0,length($1)-1) > 10 { print $0 }'

예:

du -sh *
2.5G    steve
du -sh * | awk '$1 ~ /G$/ && substr($1,0,length($1)-1) > 1 { print $0 }'
2.5G    steve
du -sh * | awk '$1 ~ /G$/ && substr($1,0,length($1)-1) > 3 { print $0 }'
(no output)

관련 정보