Назад | Перейти на главную страницу

HP-Unix: C-shell: проверка дискового пространства

У меня есть 10 устройств, использующих hp-ux, и я хочу проверить дисковое пространство на каждом устройстве. Мое требование - если пространство больше 90%, информация о пространстве устройства будет сохранена в журнале. это список устройств и IP-адресов, которые я установил как переменную ipadd:

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 показывает только одно устройство? И почему $ device [$ j] не выводится в выводе .file? или у awk есть проблемы?

Спасибо за совет.