core-extra/scripts/perf/sessiondatacollect.sh

53 lines
1.6 KiB
Bash
Raw Normal View History

#!/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