2010-03-25 23:20:59 +00:00
|
|
|
# Network UPS Tools - upssched.conf sample file
|
|
|
|
#
|
|
|
|
# ============================================================================
|
|
|
|
#
|
|
|
|
# CMDSCRIPT <scriptname>
|
|
|
|
#
|
|
|
|
# This script gets called to invoke commands for timers that trigger.
|
|
|
|
# It is given a single argument - the <timername> in your
|
|
|
|
# AT ... START-TIMER defines.
|
|
|
|
#
|
|
|
|
# *** This must be defined *before* the first AT line. Otherwise the
|
|
|
|
# program will complain and exit without doing anything.
|
|
|
|
#
|
|
|
|
# A shell script with a big case..esac construct should work nicely for this.
|
|
|
|
# An example has been provided to help you get started.
|
|
|
|
|
|
|
|
CMDSCRIPT @BINDIR@/upssched-cmd
|
|
|
|
|
|
|
|
# ============================================================================
|
|
|
|
#
|
|
|
|
# PIPEFN <filename>
|
|
|
|
#
|
|
|
|
# This sets the file name of the FIFO that will pass communications between
|
|
|
|
# processes to start and stop timers. This should be set to some path where
|
|
|
|
# normal users can't create the file, due to the possibility of symlinking
|
|
|
|
# and other evil.
|
|
|
|
#
|
2022-06-29 10:37:36 +00:00
|
|
|
# Note: if you are running Solaris or similar, the permissions that
|
2010-03-25 23:20:59 +00:00
|
|
|
# upssched sets on this file *are not enough* to keep you safe. If
|
|
|
|
# your OS ignores the permissions on a FIFO, then you MUST put this in
|
|
|
|
# a protected directory!
|
|
|
|
#
|
|
|
|
# Note 2: by default, upsmon will run upssched as whatever user you have
|
|
|
|
# defined with RUN_AS_USER in upsmon.conf. Make sure that user can
|
|
|
|
# create files and write to files in the path you use for PIPEFN and
|
|
|
|
# LOCKFN.
|
|
|
|
#
|
|
|
|
# My recommendation: create a special directory for upssched, make it
|
|
|
|
# owned by your upsmon user, then use it for both.
|
|
|
|
#
|
|
|
|
# This is commented out by default to make you visit this file and think
|
|
|
|
# about how your system works before potentially opening a hole.
|
|
|
|
#
|
|
|
|
# PIPEFN @STATEPATH@/upssched/upssched.pipe
|
|
|
|
|
|
|
|
# ============================================================================
|
|
|
|
#
|
|
|
|
# LOCKFN <filename>
|
|
|
|
#
|
|
|
|
# REQUIRED. This was added after version 1.2.1.
|
|
|
|
#
|
|
|
|
# upssched needs to be able to create this filename in order to avoid
|
|
|
|
# a race condition when two events are dispatched from upsmon at nearly
|
|
|
|
# the same time. This file will only exist briefly. It must not be
|
|
|
|
# created by any other process.
|
|
|
|
#
|
|
|
|
# You should put this in the same directory as PIPEFN.
|
|
|
|
#
|
|
|
|
# LOCKFN @STATEPATH@/upssched/upssched.lock
|
|
|
|
|
|
|
|
# ============================================================================
|
|
|
|
#
|
|
|
|
# AT <notifytype> <upsname> <command>
|
|
|
|
#
|
|
|
|
# Define a handler for a specific event <notifytype> on UPS <upsname>.
|
|
|
|
#
|
|
|
|
# <upsname> can be the special value * to apply this handler to every
|
|
|
|
# possible value of <upsname>.
|
|
|
|
#
|
2022-06-29 10:37:36 +00:00
|
|
|
# Run the command <command> via your CMDSCRIPT when it happens.
|
2010-03-25 23:20:59 +00:00
|
|
|
#
|
2022-06-29 10:37:36 +00:00
|
|
|
# Note that any AT that matches both the <notifytype> and the <upsname>
|
2010-03-25 23:20:59 +00:00
|
|
|
# for the current event will be used.
|
|
|
|
|
|
|
|
# ============================================================================
|
|
|
|
#
|
|
|
|
# Possible AT commands
|
|
|
|
#
|
|
|
|
# - START-TIMER <timername> <interval>
|
|
|
|
#
|
|
|
|
# Start a timer called <timername> that will trigger after <interval>
|
|
|
|
# seconds, calling your CMDSCRIPT with <timername> as the first
|
|
|
|
# argument.
|
|
|
|
#
|
|
|
|
# Example:
|
2022-06-29 10:37:36 +00:00
|
|
|
# 1) Start a timer that will execute when communication with any UPS (*) has
|
|
|
|
# been gone for 10 seconds
|
2010-03-25 23:20:59 +00:00
|
|
|
#
|
|
|
|
# AT COMMBAD * START-TIMER upsgone 10
|
2022-06-29 10:37:36 +00:00
|
|
|
#
|
|
|
|
# 2) Start a timer that will execute when any UPS (*) has been running
|
|
|
|
# on battery for 30 seconds
|
|
|
|
#
|
|
|
|
# AT ONBATT * START-TIMER onbattwarn 30
|
2010-03-25 23:20:59 +00:00
|
|
|
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
# - CANCEL-TIMER <timername> [cmd]
|
|
|
|
#
|
|
|
|
# Cancel a running timer called <timername>, if possible. If the timer
|
|
|
|
# has passed then pass the optional argument <cmd> to CMDSCRIPT.
|
|
|
|
#
|
|
|
|
# Example:
|
2022-06-29 10:37:36 +00:00
|
|
|
# 1) If a specific UPS (myups@localhost) communication is restored, then stop
|
|
|
|
# the timer before it triggers
|
|
|
|
#
|
2010-03-25 23:20:59 +00:00
|
|
|
# AT COMMOK myups@localhost CANCEL-TIMER upsgone
|
2022-06-29 10:37:36 +00:00
|
|
|
#
|
|
|
|
# 2) If any UPS (*) reverts to utility power, then stop the timer before it
|
|
|
|
# triggers
|
|
|
|
#
|
|
|
|
# AT ONLINE * CANCEL-TIMER onbattwarn
|
2010-03-25 23:20:59 +00:00
|
|
|
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
#
|
|
|
|
# - EXECUTE <command>
|
|
|
|
#
|
|
|
|
# Immediately pass <command> as an argument to CMDSCRIPT.
|
|
|
|
#
|
|
|
|
# Example:
|
|
|
|
# If any UPS (*) reverts to utility power, then execute
|
|
|
|
# 'ups-back-on-line' via CMDSCRIPT.
|
|
|
|
#
|
|
|
|
# AT ONLINE * EXECUTE ups-back-on-line
|