![10G보다 큰 폴더를 나열하고 적절한 소유자에게 사용량을 보냅니다.](https://linux55.com/image/70654/10G%EB%B3%B4%EB%8B%A4%20%ED%81%B0%20%ED%8F%B4%EB%8D%94%EB%A5%BC%20%EB%82%98%EC%97%B4%ED%95%98%EA%B3%A0%20%EC%A0%81%EC%A0%88%ED%95%9C%20%EC%86%8C%EC%9C%A0%EC%9E%90%EC%97%90%EA%B2%8C%20%EC%82%AC%EC%9A%A9%EB%9F%89%EC%9D%84%20%EB%B3%B4%EB%83%85%EB%8B%88%EB%8B%A4..png)
우리 환경에는 모든 사용자 홈 디렉토리를 포함하는 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)