WEB开发网
开发学院操作系统Linux/Unix 系统管理工具包: 使用 SSH 进行分布式管理 阅读

系统管理工具包: 使用 SSH 进行分布式管理

 2008-11-12 08:30:42 来源:WEB开发网   
核心提示: 清单 9. 几乎同时执行远程命令的脚本#!/bin/bash# Script to run a command across multiple machines# Global optionsTIMEOUT=10ERRLOG=/tmp/remote-err-$$.logOUTLOG=/tm

清单 9. 几乎同时执行远程命令的脚本

#!/bin/bash
# Script to run a command across multiple machines
# Global options
TIMEOUT=10
ERRLOG=/tmp/remote-err-$$.log
OUTLOG=/tmp/remote-out-$$.log
# Extract the command line
MACHINES=$1;shift
COMMAND=$1;shift
for machine in $MACHINES
do
  echo $machine >>$OUTLOG.$machine
  ssh -oConnectTimeout=$TIMEOUT $machine $COMMAND >>$OUTLOG.$machine
  2>>$ERRLOG.$machine &
done
# Wait for children to finish
wait
cat $OUTLOG.*
cat $ERRLOG.* >&2
rm -f $OUTLOG.* $ERRLOG.*

在这个脚本中,您还将计算机名回显到命令日志(对所提供的每台计算机来说是唯一的)。要确保该脚本不会在执行所有的远程命令之前退出,您需要添加一个 wait 命令,以等待该脚本的所有子操作执行结束。

现在您可以使用该脚本同时检查多台计算机(请参见清单 10)。

清单 10. 使用这个脚本同时检查多台计算机

$ runremote2.sh "narcissus gentoo.vm droopy@nostromo mcbrown@nautilus" 'uptime'
droopy@nostromo
19:15 up 9 days, 23:42, 1 user, load averages: 0.01 0.03 0.00
gentoo.vm
18:10:23 up 1 day, 10:02, 2 users, load average: 1.72, 1.84, 1.79
mcbrown@nautilus
19:15 up 10:08, 4 users, load averages: 0.40 0.37 0.29
narcissus
19:15 up 8 days, 7:04, 4 users, load averages: 0.53 0.54 0.57

上一页  2 3 4 5 6 7 8  下一页

Tags:系统 管理 工具包

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接