####################################################################### # this script is used to "run" a command on multiple systems, # allows both ssh and rsh commands. ssh MUST be properly setup # for this to work. rsh is a last resort and uses insecure .rhosts. # Solaris 8 is NOT supported for ssh... a good reason to upgrade... # this should work in Linux or HP-UX with minor adjustments... see # LINUX and HP-UX directories for comparable scripts, albeit dated... YMMV. ####################################################################### >--> more runnow.sh #!/bin/ksh # 17nov2004 john meister # purpose: script to execute command on all servers - encapulate in quotes # must be run from designated master ssh server USAGE="usage: sh ./runnow.sh , runs command on all systems - NOTE: encapsulate complex commands in quotes" ################################## # HEADER and FILE INFO ################################## CMD="`echo "$1" | tr ' ' '_' | tr '/' '-' | tr '|' '-' `" ; export CMD DATE=`date | cut -c 5-11` ; export DATE FDATE=`/usr/bin/date +%d%b%y-%H%M` ; export FDATE FNAME="$CMD.$FDATE" ; export FNAME LOG="/var/apache/htdocs/SystemInformation/$FNAME.txt" ; export LOG echo " -- $CMD -- on $DATE -- "| tee $LOG ###### NOTE writes over file when reexecuted ###### echo " ----------------------------------------------- "| tee -a $LOG ################################## # Solaris 9 systems use ssh ################################## HOSTS="host1 host2 host3 host4 ... ...host25 host26 host27" ; export HOSTS # for x in $HOSTS do echo "\n### $x (`ssh $x uname -r` on `ssh $x uname -i | awk -F, '{print $2}'`) ###" | tee -a $LOG ssh $x $1 | tee -a $LOG done ################################## # Solaris 8 systems use rsh ################################## HOSTS8="host28 host29 host30 host31... ...host49 host50 host51 host52" ; export HOSTS8 # for x in $HOSTS8 do echo "\n### $x (`rsh $x uname -r` on `rsh $x uname -i | awk -F, '{print $2}'`) ###" | tee -a $LOG rsh $x $1 | tee -a $LOG done # ################################## echo " ------------- " | tee -a $LOG echo "webpage: http://the_server.com/SystemInformation/$FNAME.txt" | tee -a $LOG echo " ------------- " | tee -a $LOG mailx -s " $1 (`date +%d%b%y`)" jm < $LOG ################################## # ssh $x uptime | awk '{ print "system up " $3 " " $4 " at " $1 " load avg=" $10$11$12$13 }' | tee -a $LOG # ssh $x sar | grep Average | awk '{print "sar average is usr_"$2" sys_"$3" wio_"$4" idle_"$5"%"}' | tee -a $LOG # echo "System messages ($DATE):" | tee -a $LOG # ssh $x cat /var/adm/messages | grep "`date | cut -c 5-11`" | tee -a $LOG # rsh $x uptime | awk '{ print "system up " $3 " " $4 " at " $1 " load avg=" $10$11$12$13 }' | tee -a $LOG # rsh $x sar | grep Average | awk '{print "sar average is usr_"$2" sys_"$3" wio_"$4" idle_"$5"%"}' | tee -a $LOG # rsh $x cat /var/adm/messages | grep "`date | cut -c 5-11`" | tee -a $LOG ##################################