디스크 사용량 스크립트가 90% 미만인 경우 이메일을 보내지 마십시오.

디스크 사용량 스크립트가 90% 미만인 경우 이메일을 보내지 마십시오.

아래에 기본 명령이 있지만 디스크 사용량이 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입니다 .POSIXen_US.UTF-8
  • 확인하려는 파티션이 설치된 위치의 경로를 /입력 하세요 .df /
  • -gt"보다 큼"을 나타내는 기호입니다.

관련 정보