upssched (5) Linux Manual Page
upssched.conf – Configuration for upssched timer program
Description
This file controls the operations of upssched(8), the timer-based helper program for upsmon(8).
Configuration Directives
- CMDSCRIPT scriptname
- Required. This must be above any AT lines. This script is used to invoke commands when your timers are triggered. It receives a single argument which is the name of the timer that caused it to trigger.
- PIPEFN filename
- Required. This sets the file name of the socket which will be used for interprocess communications. This should be in a directory where normal users can’t create the file, due to the possibility of symlinking and other evil.
- Note: if you are running Solaris or similar, the permissions that upssched sets on this file
are not enoughto 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(8) will run upssched as whatever user you have defined with RUN_AS_USER inupsmon.conf(8). 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.
- The stock version of the upssched.conf ships with PIPEFN disabled to make you visit this portion of the documentation and think about how your system works before potentially opening a security hole.
- Note: if you are running Solaris or similar, the permissions that upssched sets on this file
- LOCKFN filename
- Required. upssched attempts to create this file 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.
- 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 UPS.
- This will perform the command command when the notifytype and upsname match the current activity. Possible values for command are:
- START-TIMER timername interval
Start a timer of interval seconds. When it triggers, it will pass the argument timername as an argument to your CMDSCRIPT.
- This will perform the command command when the notifytype and upsname match the current activity. Possible values for command are:
- Example:
Start a timer that'll execute when any UPS (*) has been gone for 10 seconds AT COMMBAD * START-TIMER upsgone 10
- 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:
If a specific UPS (myups [at] localhost) comes back online, then stop the timer before it triggers AT COMMOK myups [at] localhost CANCEL-TIMER upsgone
- 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
- Note that any AT that matches both the notifytype and the upsname for the current event will be used.
For a complete list of notifytype possible values, refer to the section NOTIFY EVENTS in
upsmon(8).
See Also
Internet resources:
The NUT (Network UPS Tools) home page: http://www.networkupstools.org/
