Unix c-シェル:ディスクチェック

Unix 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であるのはなぜですか?

ありがとうございます。

ベストアンサー1

おすすめ記事