![디스크 사용량 스크립트가 90% 미만인 경우 이메일을 보내지 마십시오.](https://linux55.com/image/162646/%EB%94%94%EC%8A%A4%ED%81%AC%20%EC%82%AC%EC%9A%A9%EB%9F%89%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EA%B0%80%2090%25%20%EB%AF%B8%EB%A7%8C%EC%9D%B8%20%EA%B2%BD%EC%9A%B0%20%EC%9D%B4%EB%A9%94%EC%9D%BC%EC%9D%84%20%EB%B3%B4%EB%82%B4%EC%A7%80%20%EB%A7%88%EC%8B%AD%EC%8B%9C%EC%98%A4..png)
아래에 기본 명령이 있지만 디스크 사용량이 90%를 넘지 않으면 이메일이 필요하지 않습니다. 아마도 일종의 else if 문일 것입니다.
df -Ph | sed s/%//g | awk '{ if($5 > 90) print $0;}' | mail -s Disk Space Alert On $(hostname) [email protected]
답변1
나는 당신의 명령을 받아들여 그것을 하나로 묶을 수 있었습니다:
df -Ph | awk 'int($5) > 90 {print $0; rc=1}; END {exit rc}' || mail -s "Disk Space Alert On $(hostname)" [email protected]
sed
필요하지 않기 때문에 제거했습니다 awk
. 설명 에서 awk
나열된 파티션 중 하나라도 90%를 초과하는 것으로 확인되면 0이 아닌 반환 코드를 설정한 다음 0이 아닌 값이 반환되는 경우에만 이메일을 보냅니다.
제가 생각할 수 있는 유일한 주의 사항은 awk
오류로 인해 실패할 수 있고 여전히 이메일을 받게 된다는 것입니다. 하지만 아마도 그것이 이상적인 알림일 것입니다.
답변2
다음과 같이 작동할 수 있습니다.
if [ $(LC_ALL=C df / | tail -1 | cut -d% -f1 | cut -d' ' -f12) -gt 90 ]; then echo mail -s "Disk Space Alert On $(hostname)" [email protected]; fi
df
로케일에 따라 다른 출력을 제공하므로 접두어를 붙였습니다LC_ALL=C
. 대안은 또는 시스템에 대해 구성된 다른 로케일C
입니다 .POSIX
en_US.UTF-8
- 확인하려는 파티션이 설치된 위치의 경로를
/
입력 하세요 .df /
-gt
"보다 큼"을 나타내는 기호입니다.