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
while ($j <= $#ipaddress)
echo $ipaddress
set i = 90 # Threshold set at 90%
set max = 100
while ($i <= $max)
rsh $ipaddress[$j] bdf | grep /dev/vg00 | grep $i% |awk '{ file=substr($6,index($6,"/") + 1,length($6)); print "WARNING: $device[$j]:/" file " has reached " $5 ". Perform HouseKeeping IMMEDIATELY..." >> "/scripts/space." file ".file"}'
@ i++
end
@ j++
end
bdf 이후 출력:
/dev/vg00/lvol2 15300207 10924582 28566314 79% /
/dev/vg00/lvol4 42529 23786 25510 55% /stand
스크립트를 실행한 후 터미널에 다음을 출력합니다.
100.45.32.43
100.45.32.44
.file에 출력:
WARNING: $device[$j]:/ has reached 79%. Perform HouseKeeping IMMEDIATELY...
문제는 내 .file 출력이 하나의 장치만 표시하기 때문에 한 번만 반복하는 루프에 문제가 있습니까? .file 출력에 $device[$j]가 표시되지 않는 이유는 무엇입니까? 아니면 awk에 문제가 있는 걸까요?
조언해 주셔서 감사합니다.