/sbin/upsschedcmdscript


#!/bin/sh

unset LANG LANGUAGE LC_ALL
LC_ALL=C
export LC_ALL

PATH=/usr/sbin:/usr/bin:/sbin:/bin
export PATH

date=`date`

cmd=`basename "${0}"`

if [ ${#} -eq 0 ]
  then
    arg1='?'
  else
    arg1="${1}"
    shift
  fi
args="${arg1}"
while [ ${#} -gt 0 ]; do
  args="${args} ${1}"
  shift
  done

case "${arg1}" in
  commbad )
    echo "${date}: ${cmd}: ${arg1} state detected" | mailx -s "UPS state ${arg1}" root
    ;;
  no-contact-shutdown )
    echo "${date}: ${cmd}: ${arg1} timer elapsed, will shutdown now" | mailx -s "UPS state ${arg1}" root
    sleep 5
    upsmon -c fsd
    ;;
  commok | online )
    powerdownflag=''
    if [ -e /etc/nut/upsmon.conf ]; then
      powerdownflag=`cat /etc/nut/upsmon.conf     \
        | sed 's,#.*$,,'                          \
        | awk 'BEGIN{f="";}                       \
                    {if(NF!=2)next;               \
                     if($1!="POWERDOWNFLAG")next; \
                     f=$2;exit;}                  \
                 END{if(length(f)>0)print f;}'`
      fi
    if [ -n "${powerdownflag}" ]; then
      if [ -e "${powerdownflag}" ]; then
        rm "${powerdownflag}"
        fi
      fi
    echo "${date}: ${cmd}: ${arg1} state detected" | mailx -s "UPS state ${arg1}" root
    ;;
  fsd | lowbatt | nocomm | onbatt | replbatt | shutdown )
    echo "${date}: ${cmd}: ${arg1} state detected" | mailx -s "UPS state ${arg1}" root
    ;;
  * )
    echo "${date}: ${cmd}: Unrecognized: ${args}" | mailx -s "UPS state ${arg1}" root
    logger -it ${cmd} "Unrecognized command: ${args}"
    ;;
  esac

exit 0


Stephan K.H. Seidl