我已经完成了制作C-shell脚本的任务。我分别有IP地址和设备名称列表。例如;
cal 1 : 100.21.25.10
cal 2 : 100.21.25.11
cal 3 : 100.21.25.12
cal 4 : 100.21.25.14
and so on...
根据这个ip和设备名称,我需要rsh ip地址并让磁盘空闲。磁盘空闲的结果将保存到日志中。日志的详细信息将是设备名称需要保持。我的想法是:
声明数组:
set device =( cal1 cal2 cal3)
set ip = (100.21.25.10 100.21.25.11 100.21.25.12 100.21.25.14)
set highspace = 90
foreach data($ip)
set space = rsh $ip df -k
if (${space} >= ${highspace}) then
echo "Please Housekeep $device:" >> $device.log
endif
这会起作用吗?或者你们有更好的主意吗?感谢。
答案 0 :(得分:1)
C shell应never be used anymore。也不应rsh
;我们现在有ssh
。
你在Bourne shell中的任务:
#! /bin/sh
highspace=90
fs_to_watch=/path/to/filesystem/that/fills/up
exec 0<"$1"
while read cal calno colon addr; do
space=$(ssh "$addr" df -k "$fs_to_watch" |
awk 'NR > 1 { sub(/%$/, "", $5); print $5 }')
if [ "$space" -gt "$highspace" ]; then
echo "Please Housekeep Cal-$calno"
fi
done