core-extra/scripts/perf/sessiondatacollect.sh
2018-10-12 10:13:02 -07:00

52 lines
1.6 KiB
Bash
Executable file

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