我对 shell 脚本完全陌生。我的任务是简化旧的 c shell 脚本。基本上,该脚本有 10 个使用 hp-ux 的设备,我想检查每个设备中的磁盘空间。我的要求是如果空间超过90%,设备和空间的信息将保存到日志中。这是我设置为变量 ipadd 的设备和 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 中 exec 后的输出:
lot1// has reached 79 . Perform HouseKeeping IMMEDIATELY...
lot2//stand has reached 56 . Perform HouseKeeping IMMEDIATELY...
我的问题是:
为什么每个设备的输出仅为 /dev/vg00/lvol2 而不是 /dev/vg00/lvol4?
谢谢。