유닉스 c-쉘: 디스크 검사

유닉스 c-쉘: 디스크 검사

저는 쉘 스크립팅을 처음 접했습니다. 나는 오래된 C 쉘 스크립트를 단순화하는 임무를 맡고 있습니다. 기본적으로 이 스크립트에는 hp-ux를 사용하는 10개의 장치가 있으며 각 장치의 디스크 공간을 확인하고 싶습니다. 내 요구 사항은 공간이 90%를 초과하면 장치 및 공간의 정보가 로그에 저장된다는 것입니다. 다음은 ipad 변수로 설정한 장치 및 IP 주소 목록입니다.

lo1 100.45.32.43
lot2 100.45.32.44
lot3 100.45.32.44
lot4 100.45.32.45
lot5 100.45.32.46 
and so on.

스크립트는 다음과 같습니다.

#!/bin/csh -f
set ipaddress = (`awk '{print $2}' "ipadd"`)
set device = (`awk '{print $1}' "ipadd"`)
@ j = 1
set i = 90
while($j <= $#ipaddress)
set space = (`rsh $ipaddress[$j]  bdf | grep /dev/vg00|awk '{print $5}' |   cut -c 1-2`)
echo $space[$j]

set file =(`rsh $ipaddress[$j]  bdf | grep /dev/vg00 |awk '{print $6}'`)
echo $file

if ( {$space[$j]} >= {$i} ) then
echo "hi"
echo "$device[$j]/$file[$j] has reached $space[$j] . Perform HouseKeeping IMMEDIATELY..." >> /script/dev.file

endif

@ j++
end

bdf의 출력:

/dev/vg00/lvol2    15300207 10924582 28566314   79% /
/dev/vg00/lvol4      42529   23786   25510   55% /stand

.file에서 실행 후 출력:

lot1// has reached 79 . Perform HouseKeeping IMMEDIATELY...
lot2//stand has reached 56 . Perform HouseKeeping IMMEDIATELY...

내 질문은 다음과 같습니다

각 장치의 출력이 /dev/vg00/lvol4가 아닌 /dev/vg00/lvol2인 이유는 무엇입니까?

감사해요.

관련 정보