#!/bin/bash # ----------------------------------------------------------------------------- # Checks the logs of the remote ONOS instance and makes sure they are clean. # ----------------------------------------------------------------------------- function __usage() { cat << _EOM_ usage: $(basename $0) [node] ['old'] options: - [node] : The node whose logs to inspect. The default is \$OCI. - ['old'] : If 'old' is specified, the logs are simply searched for errors and exceptions, and they are displayed. summary: Checks the logs of the remote ONOS instance and makes sure they are clean. _EOM_ } [ "$1" = "-h" ] && __usage && exit 0 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 . $ONOS_ROOT/tools/build/envDefaults remote=$ONOS_USER@${1:-$OCI} LOG=$ONOS_INSTALL_DIR/log/karaf.log* aux=/tmp/log.$$ if [ "$2" = "old" ]; then ssh $remote "egrep 'ERROR|Exception|Error' $LOG" else ssh $remote " [ "'`uname`'" != "'"Linux"'" ] && alias tac='tail -r' tac $LOG | awk ' BEGIN { off = 0; fail = 0; } / org.apache.karaf.main.lock.SimpleFileLock lock/ { off = 1; exit fail; } / ERROR / { if (!off) { print \$0; exc = 0; fail = 1; } } / WARN / { if (!off && exc) { print \$0; exc = 0; } } /^[a-zA-Z0-9.]*(Exception|Error)/ { if (!off) { print \$0; exc = 1; fail = 1; } } / at / { if (!off) { print \$0; } } END { exit fail; } ' > $aux status=\$? tac $aux && rm $aux exit \$status " fi