52 lines
1.6 KiB
Bash
52 lines
1.6 KiB
Bash
#!/bin/sh
|
|
# (c)2010-2012 the Boeing Company
|
|
# author: Yueli Yang <yueli.yang@boeing.com>
|
|
#
|
|
# Create a tar ball of the CORE session's runtime folder /tmp/pycore.nnnn
|
|
# Collection such runtime tar balls from all distributed servers to folder
|
|
# /tmp/<sessionid>-<date>-<time> for example: /tmp/56779-11Oct14-09:33:13
|
|
|
|
currentdir=` pwd `
|
|
sid=${currentdir##*.}
|
|
ts=` date +%y%h%d-%T `
|
|
logfile=/tmp/corelog.tgz
|
|
echo Collect data from localhost:$currentdir to $logfile
|
|
cd ..
|
|
tar -czf $logfile ${currentdir##*/}
|
|
if [ ! $? = 0 ]; then
|
|
echo Failed to collect CORE data from localhost:$currentdir to $logfile
|
|
fi
|
|
cd $currentdir
|
|
|
|
m=` grep master $currentdir/servers `
|
|
if [ ! $sid = ${m##*=} ]; then
|
|
# quite if this is not a master server
|
|
echo not a master server
|
|
exit
|
|
fi
|
|
|
|
# On a master server, create a folder to harvest overall core emulation data
|
|
logdir=/tmp/$sid-$ts
|
|
if [ ! -e $logdir ]; then
|
|
echo create folder $logdir
|
|
mkdir $logdir
|
|
fi
|
|
cp $logfile $logdir/localhost-${currentdir##*.}.tgz
|
|
|
|
# harvest CORE data from distributed servers
|
|
hs=` grep -v master= $currentdir/servers | awk {'print $2'} `
|
|
echo hosts are localhost $hs
|
|
for h in $hs; do
|
|
echo checking host $h ...
|
|
out=` ping -c 1 -w 1 $h | grep " 0 received," `
|
|
if [ " $out " = " " ]; then
|
|
slavesid=` ssh $h tar -tzf $logfile | awk -F / {'print $1'} `
|
|
if [ $? = 0 ]; then
|
|
destlogfile=$logdir/$h-${slavesid##*.}.tgz
|
|
echo Collect data from $h:$logfile to $destlogfile
|
|
scp $h:$logfile $destlogfile
|
|
else
|
|
echo $logfile could not be found on host $h
|
|
fi
|
|
fi
|
|
done
|