
#!/bin/sh
# File  : chk_login.sh
# By    : Maarten.deBoer@AtosOrigin.com, 091214
# Subject       : Check if no hanging users (from not today)
# (0.2) : Case added
# (0.3) : remove 0 at date
# (0.1) : Name changed to hk_login.sh
#set -x
PGM="`basename $0|cut -d\. -f1`"
VERSION="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
MAILTO="maarten.deboer@atosorigin.com"
touch ${TMP}
OS="`uname -s`"
MAILADDR=""
MAILFILE="${TMP}.mail"
echo "These users are still logged in from previous days, at `date`" > ${MAILFILE}
echo "" >> ${MAILFILE}
case ${OS} in
  SunOS)
    DAY="`date +%a`" ; finger|grep -v TTY|grep -v "${DAY}"|grep -v 'No one logged on'|tee -a ${TMP} ;;
  Linux)
    DAY="`date +%d|sed -e 's/0//g'`" ; finger|grep -v Tty|grep -v "${DAY}"|grep -v 'No one logged on'|tee -a ${TMP} ;;
  *) echo "Unknown OS (${OS}). Exiting ..." >> ${TMP} ;;
esac
# If ${TMP} (error msg), then mail
if [ -s ${TMP} ]; then
#  cat ${TMP} | mailx -s "`hostname`: Check finger [${PGM} v${VERSION}]" ${MAILTO}
#  echo "Mailed to ${MAILTO}"
# Send to the users as well
  cat ${TMP} | cut -d' ' -f1 | while read USER
  do
    MAILADDR="`grep ${USER} /etc/passwd | cut -d\( -f2 | cut -d\) -f1`"
    if [ "${MAILADDR}" == "" ]; then
      cat ${TMP} >> ${MAILFILE}
      echo "No mailaddress found in /etc/passwd for ${USER}" >> ${MAILFILE}
      cat ${MAILFILE} | mailx "`hostname`: Check login [${PGM} v${VERSION}]" ${MAILTO}
      echo "Mailed to ${MAILTO} ..."
    else
      cat ${TMP} >> ${MAILFILE}
      echo "" >> ${MAILFILE}
      echo "Please logout, if possible." >> ${MAILFILE}
      cat ${MAILFILE} | mailx -s "`hostname`: Check login [${PGM} v${VERSION}]" ${MAILTO}
      echo "Mailed to ${MAILADDR} ${MAILTO} ..."
    fi
  done
fi
rm ${TMP} ${MAILFILE}
exit 0

