
#!/bin/sh
# File	: ssh_list.sh
# By	: Maarten.deBoer, 250218,250226
# Subject	: Script to SSH from a list
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
LST="${HOME}/etc/${PGM}.lst"
SSH="/usr/bin/ssh -n"
FILTER1="[?]*"
FILTER2="mgt"
SSH_CMD="hostname"

if [ "${1}" != "" ]; then
  FILTER1="${1}"
fi  # $1
if [ "${2}" != "" ]; then
  SSH_CMD="${2}"
fi  # $1

echo "`date` ${PGM} v${VER} started."| tee -a ${LOG}
echo "  FILTER1(1)=${FILTER1}"
echo "  FILTER2=${FILTER2}"
echo "  LOG=${LOG}"
echo "  LST=${LST}"
echo "  SSH_CMD(2)=${SSH_CMD}"
sleep 1

if [ ! -f ${LST} ]; then
  echo "  LIST (${LST}) NOT found. Exiting ..."|tee -a ${LOG}
  exit 4
fi  # -f

cat ${LST}|grep -v ^#|grep "${FILTER1}"|grep "${FILTER2}"|while read LINE
do
  IP_ADDR=`echo "${LINE}"|awk '{print $1}'`
  NAME=`echo "${LINE}"|awk '{print $2}'`
  echo -n "  ${NAME} (${IP_ADDR}) ="|tee -a ${LOG}
  ping -w 2 -c 2 ${IP_ADDR} 1> /dev/null 2>&1
  EC=${?}
  if [ ${EC} -eq 0 ]; then
    echo " OK (${EC})"|tee -a ${LOG}
    ${SSH} ${IP_ADDR} "${SSH_CMD}"
  else
    echo " NOTok (${EC})"|tee -a ${LOG}
  fi
done  # LINE


echo "`date` ${PGM} v${VER} finished."| tee -a ${LOG}
exit 0

