Archived
1
0
Fork 0

manage_server: Add new command to view log remotely

This commit is contained in:
Mercier Pierre-Olivier 2013-09-28 13:39:31 +02:00
parent d7686f68c0
commit ba75c5c8fd
2 changed files with 145 additions and 32 deletions

View file

@ -5,53 +5,99 @@ cd $(dirname "$0")
WKS_LIST="apl"
SRV_LIST="moore noyce hamano cpp"
ACTIONS="start stop restart update"
KNOWN_ACTIONS="start stop restart update log viewlog view_log"
LOG=`mktemp`
for ACT in $ACTIONS
ACTIONS=
DESTS=
USED=1
while [ $# -gt 0 ] && [ $USED -eq 1 ]
do
if [ -n "$1" ] && [ "$1" == "$ACT" ]
USED=0
for ACT in $KNOWN_ACTIONS
do
if [ -n "$1" ] && [ "$1" == "$ACT" ]
then
ACTIONS="$ACTIONS $ACT"
USED=1
break
fi
done
for DEST in $WKS_LIST $SRV_LIST
do
if [ -n "$1" ] && [ "$1" == "$DEST" ]
then
DESTS="$DESTS $DEST"
USED=1
break
fi
done
if [ "$1" == "@srv" ]
then
ACTION="$ACT"
break
DESTS="$DESTS $SRV_LIST"
USED=1
elif [ "$1" == "@wks" ]
then
DESTS="$DESTS $WKS_LIST"
USED=1
fi
if [ $USED -eq 1 ]
then
shift
fi
done
if [ -z "$ACTION" ]
if [ -z "$ACTIONS" ]
then
echo "Usage: $0 [$ACTIONS]"
echo "Usage: $0 [where] <`echo $KNOWN_ACTIONS | sed 's/ /|/g'`> [options]"
exit 1
fi
FAIL=0
for SRV in $SRV_LIST
do
echo -e "\e[1;34m>>>\e[0m $ACTION on $SRV"
if [ "$ACTION" == "update" ]
then
ssh root@$SRV "make -C liblerdorf update upgrade"
else
ssh root@$SRV '~'/liblerdorf/process/launch.sh "$ACTION"
fi
if [ -z "$DESTS" ]
then
DESTS="$SRV_LIST $WKS_LIST"
fi
if [ $? -eq 0 ]
then
echo -e "\e[1;32m>>>\e[0m $ACTION success on $SRV" | tee -a "$LOG"
else
echo -e "\e[1;31m>>>\e[0m $ACTION fails on $SRV" | tee -a "$LOG"
FAIL=1
fi
echo
OPTIONS=
while [ $# -gt 0 ]
do
OPTIONS="$OPTIONS $1"
shift
done
for WKS in $WKS_LIST
FAIL=0
for ACTION in $ACTIONS
do
echo -e "\e[1;34m>>>\e[0m $ACTION on $WKS"
if [ "$ACTION" == "update" ]
then
ssh root@$SRV "make -C liblerdorf update upgrade"
fi
echo
for DEST in $DESTS
do
echo -e "\e[1;34m>>>\e[0m \e[33m$ACTION\e[0m on \e[1m$DEST\e[0m"
if [ "$ACTION" == "update" ]
then
ssh root@$DEST "make -C liblerdorf update upgrade"
elif [ "$ACTION" == "log" ] || [ "$ACTION" == "viewlog" ] || [ "$ACTION" == "view_log" ]
then
ssh root@$DEST '~'/liblerdorf/process/view_log.sh $OPTIONS
else
ssh root@$DEST '~'/liblerdorf/process/launch.sh "$ACTION"
fi
if [ $? -eq 0 ]
then
echo -e "\e[1;32m>>>\e[0m \e[33m$ACTION\e[0m success on \e[1m$DEST\e[0m" | tee -a "$LOG"
else
echo -e "\e[1;31m>>>\e[0m \e[33m$ACTION\e[0m fails on \e[1m$DEST\e[0m" | tee -a "$LOG"
FAIL=1
fi
echo
done
done
cat "$LOG"