하드 용량 체크 스크립트 도와주세요

하드 파티션 정보
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/mapper/VolGroup-lv_root 51606140 9798952 39185748 21% /
tmpfs 444236 336 443900 1% /dev/shm
/dev/sda1 495844 132490 337754 29% /boot
/dev/mapper/VolGroup-lv_home 234292096 6072520 216318240 3% /home

#!/bin/bash
check=`df -P |grep ‘^/’| awk ‘{print $5}’| awk -F’%’ '{print $1}

명령어 입력시 변수에
21
1
29
3
해당 내용이 저장됩니다.

이중에서 최대값 29 만 따른 변수에 넣고 싶어요 도와주세요.

아니면 하드 용량 90넘으면 메일 전송할수 있는 스크립트좀 알려주세요

원하시는 것이 이것인지는 잘 모르겠습니다만… 도움이 되시길 바랄 뿐입니다.

#!/bin/bash

function to get maximum value among arguments

function getmax () {
max=0
for value in $@
do
if [ $value -gt $max ]; then
max=$value
fi
done
}

check=df -P |grep '^/'| awk '{print $5}'| awk -F'%' '{print $1}'

after this function call, vaiable max holds the maximum value

getmax $check
echo $max

근데, 들여쓰기를 어떻게 해야 하는지 모르겠네요. 공백을 주었는데도 맨 앞으로 붙어서 보이는군요.

[quote="happyman":2ciby1jk]근데, 들여쓰기를 어떻게 해야 하는지 모르겠네요. 공백을 주었는데도 맨 앞으로 붙어서 보이는군요.[/quote:2ciby1jk]
code 태그를 붙이면 됩니다.

[code:2ciby1jk]#!/bin/bash

function to get maximum value among arguments

function getmax () {
max=0
for value in $@
do
if [ $value -gt $max ]; then
max=$value
fi
done
}

check=df -P |grep '^/'| awk '{print $5}'| awk -F'%' '{print $1}'

after this function call, vaiable max holds the maximum value

getmax $check
echo $max[/code:2ciby1jk]

[quote="별님":ryf28hrw]
code 태그를 붙이면 됩니다.
[/quote:ryf28hrw]

그렇군요. 게시판이 재미있게 구성되어 있네요. 감사합니다.

다음 두가지 방법을 제시합니다.

[code:22oc0bkt]

5번째 열을 숫자기반으로 정렬하여, 최대값에서 1열, 5열 (파티션, 사용량)을 추출

df -P |grep ‘^/’| sort -k5n | tail -1 | awk ‘{print $1 " " $5}’
[/code:22oc0bkt]

[code:22oc0bkt]

5번째 열 값들 중 최대값을 구해서, 다 구한 후, 파티션, 최대값을 출력

df -P |awk -F ‘[ %]+’ ‘/^// { if ($5>max) { max=$5; part=$1 } } END {print part " " max "%" }’
[/code:22oc0bkt]

둘 중 아무거나 사용해도 됩니다.

메일 보내는 것은,

[code:22oc0bkt]#!/bin/sh
notify90() {
s=$(위의코드)
# 공백문자 포함 앞부분 제거
size=${s##* }

# 뒤에서 %문자 제거 후 90 보다 크거나 같으면
if [ "${size%\%}" -ge 90 ]; then
	# "디스크 공간부족"이라는 제목과  "파티션, 사용량"을 내용으로 사용자@메일서버에 메일을 보냄
	# 요즘은 mailx가 설치되지만, mail로 심볼릭링크 걸려있으므로 상관없음
	echo "$s" | mail -s '디스크 공간부족' 사용자@메일서버
fi

}

notify90
[/code:22oc0bkt]