Skip to content

Commit

Permalink
ADD: Check response times
Browse files Browse the repository at this point in the history
  • Loading branch information
zoglauer committed Sep 7, 2020
1 parent 6f49a70 commit 806d80c
Showing 1 changed file with 85 additions and 0 deletions.
85 changes: 85 additions & 0 deletions bin/dmegalib-responsetime
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
#!/bin/bash

# Part of the MEGAlib analysis cluster
# Check and print the response time of the individual machens



commandhelp() {
echo ""
echo "dmegalib-responsetime - list all running instances by run name";
echo "Copyright by Andreas Zoglauer"
echo ""
echo "Usage: dmegalib-responsetime [options]";
echo ""
echo "Options:"
echo " --path: An absolute remote path"
echo " --help: Show this help."
echo ""
echo "";
echo "Example: "
echo " dmegalib-responsetime --path=/volumes/atlas/user/simy";
echo "";
}


# Store command line as array
CMD=( "$@" )

# Check for help
REMOTEPATH=""
for C in "${CMD[@]}"; do
if [[ ${C} == *-h* ]]; then
echo ""
commandhelp
exit 0
fi
done


# Read configuration file and extract machines
CFG=~/.dcosima.cfg
if [ ! -f ${CFG} ]; then
echo "ERROR: No dmegalib configuration file present. Please run dmegalib-setup first."
exit 1
fi

MACHINES=( `cat ${CFG} | grep "^machine" | gawk '{ print $2 }'` )
REMOTEUSER=( )
REMOTEHOST=( )
REMOTEPORT=( )

for (( m=0; m<=$(( ${#MACHINES[*]} -1 )); m++ )); do
REMOTEUSER[$m]=`echo "${MACHINES[$m]}" | awk -F"@" '{ print $1 }'`
REMOTEHOST[$m]=`echo "${MACHINES[$m]}" | awk -F"@" '{ print $2 }' | awk -F":" '{ print $1 }'`
REMOTEPORT[$m]=`echo "${MACHINES[$m]}" | awk -F":" '{ print $2 }'`
done


echo " "
echo "Access times:"
echo " "

for (( m=0; m<=$(( ${#MACHINES[*]} -1 )); m++ )); do

STARTTIME="$(date -u +%s.%N)"

# Do a quick check
for i in `seq 1 5`; do
REMOTENAME=`ssh -i ${HOME}/.ssh/dmegalib_rsa -q -o ConnectTimeout=5 -p ${REMOTEPORT[$m]} ${REMOTEUSER[$m]}@${REMOTEHOST[$m]} "hostname"`
done
if [ "$?" != "0" ]; then
printf "%-50s failed\n" "* Machine ${REMOTEHOST[$m]}, port ${REMOTEPORT[$m]}, user ${REMOTEUSER[$m]}:" "${ELAPSED}"
else
STOPTIME="$(date -u +%s.%N)"
ELAPSED="$(bc <<<"${STOPTIME} - ${STARTTIME}")"
#echo " * Machine ${REMOTEHOST[$m]}, port ${REMOTEPORT[$m]}, user ${REMOTEUSER[$m]}: ${ELAPSED}"
printf "%-50s %.3f seconds\n" "* Machine ${REMOTEHOST[$m]}, port ${REMOTEPORT[$m]}, user ${REMOTEUSER[$m]}:" "${ELAPSED}"
fi

done


echo " "

exit 0

0 comments on commit 806d80c

Please sign in to comment.