upscmd - UPS administration program for instant commands
upscmd -l ups
upscmd [-u username] [-p password] ups
upscmd allows you to invoke "instant commands" in your UPS
hardware. Not all hardware supports this, so check the list with -l to see if
anything will work on your equipment.
On hardware that supports it, you can use this program to start
and stop battery tests, invoke a front panel test (beep!), turn the load on
or off, and more.
Display the help message.
Show the list of supported instant commands on that UPS.
Some hardware may not support any of them.
Set the username for the connection to the server. This
is optional, and you will be prompted for this when invoking a command if -u
is not used.
Set the password to authenticate to the server. This is
also optional like -u, and you will be prompted for it if necessary.
Connect to this UPS. The format is
upsname[@hostname[:port]]. The default hostname is
If you run this program inside a shell script or similar to invoke a command,
you will need to specify all of the information on the command line. This
means using -u and -p. Otherwise it will put up a prompt and your program will
This is not necessary when displaying the list, as the username
and password are not required for read-only mode.
Moreover, if you run this program inside a shell script or
similar, you should only consider using output from stdout, not stderr.
Some drivers like apcsmart(8) have built-in paranoia for the dangerous
commands like load.off. To make them actually turn off the load, you will have
to send the command twice within a short window. That is, you will have to
send it once, then send it again after 3 seconds elapse but before 15 seconds
This paranoia is entirely defined within the driver. upsd and
upscmd have no control over the timing.
upscmd won’t work unless you provide a valid username and password. If
you get "access denied" errors, make sure that your
upsd.users(5) has an entry for you, and that the username you are using
has permissions to SET variables.
There is currently no way to tell the user when the driver requires confirmation
to invoke a command such as load.off. Similarly, there is not yet a way to
tell the user if a command succeeds or fails.
This is on the list of things to fix in the future, so
don’t despair. It involves magic cookies.