디스크 사용량이 90%를 초과하면 자동으로 이메일 경고를 보내는 스크립트를 내 서버에 구현하고 싶습니다. 내 파일 시스템은 data/u01이고 마운트 지점은/u01입니다.
#!/bin/bash
[email protected]
ALERT=90
df -h | egrep -v 'data/u01/u01' | awk '{ print $5 " " $1 }' | while read output;
do
usep=$(echo $output | awk '{ print $1}' )
echo $usep
if [ $usep -ge ${ALERT%} ]; then
echo "Alert: Almost out of disk space $usep"
df -h | mail -s "Alert: out of disk space $usep" $ADMIN
fi
done
.........
하지만 다음과 같은 오류가 발생합니다.
capacity
./iv.sh: line 8: [: capacity: integer expression expected
23%
./iv.sh: line 8: [: 23%: integer expression expected
0%
답변1
-ge
정수가 필요합니다. %
마지막 것을 제거 ALERT
하고 usep
다음으로 변경하십시오.
usep=$(echo $output | awk '{ print $1}' | tr -d "%" )
monit 패키지를 살펴보세요. 이는 더 표준적이며 모니터링 결과에 따라 조치를 취하는 것을 포함하여 더 많은 작업을 수행할 수 있습니다.
더 많은 작업을 수행할 수 있고 매우 유연하여 매우 간단한 형식으로 이벤트를 기반으로 경고 및 작업을 생성할 수 있는 monit과 같은 보다 표준적인 모니터링 방법을 사용하는 것이 좋습니다.