'\" t .\" Title: upsc .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 06/21/2026 .\" Manual: NUT Manual .\" Source: Network UPS Tools 2.8.5 .\" Language: English .\" .TH "UPSC" "8" "06/21/2026" "Network UPS Tools 2\&.8\&.5" "NUT Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" upsc \- Lightweight read\-only NUT client .SH "SYNOPSIS" .sp \fBupsc\fR [\-j] \-l | \-L [\fIhost\fR] .sp \fBupsc\fR [\-j] \fIups\fR [\fIvariable\fR] .sp \fBupsc\fR [\-j] \-c \fIups\fR .SH "DESCRIPTION" .sp \fBupsc\fR is provided as a quick way to poll the status of a UPS server\&. It can be used inside shell scripts and other programs that need UPS data but don\(cqt want to include the full interface\&. .SH "OPTIONS" .PP \fB\-j\fR .RS 4 Output the results in JSON format\&. This will bypass the standard text output and print a JSON object to stdout\&. The structure of the JSON depends on the mode: .RE .sp .if n \{\ .RS 4 .\} .nf `upsc \-j \-l`: Returns a JSON array of UPS names\&. `upsc \-j \-L`: Returns a JSON object mapping UPS names to their descriptions\&. `upsc \-j `: Returns a JSON object of all variables and their values\&. `upsc \-j `: Returns a single JSON string (the value)\&. `upsc \-j \-c `: Returns a JSON array of client addresses\&. .fi .if n \{\ .RE .\} .PP \fB\-l\fR \fIhost\fR .RS 4 List all UPS names configured at \fIhost\fR, one name per line\&. The hostname defaults to "localhost"\&. You may optionally add a colon and a port number\&. .RE .PP \fB\-L\fR \fIhost\fR .RS 4 As above, list all UPS names configured at \fIhost\fR, including their description provided by the remote \fBupsd\fR(8) from its \fBups.conf\fR(5)\&. The hostname defaults to "localhost"\&. You may optionally add a colon and a port number to override the default port\&. .RE .PP \fB\-c\fR \fIups\fR .RS 4 Lists each client connected on \fIups\fR, one name per line\&. .RE .PP \fIups\fR .RS 4 Display the status of that UPS\&. The format for this option is \fIupsname[@hostname[:port]]\fR\&. The default hostname is "localhost"\&. .RE .PP \fIvariable\fR .RS 4 Display the value of this variable only\&. By default, upsc retrieves the list of variables from the server and then displays the value for each\&. This option may be useful in shell scripts to save an additional pipe into grep\&. .RE .SH "COMMON OPTIONS" .PP \fB\-h\fR .RS 4 Show the command\-line help message\&. .RE .PP \fB\-D\fR .RS 4 Raise the debugging level\&. Use this option multiple times for more details\&. Overrides the optional NUT_DEBUG_LEVEL environment variable\&. .RE .PP \fB\-V\fR .RS 4 Show NUT version banner\&. More details may be available if you also export NUT_DEBUG_LEVEL=1 or greater verbosity level\&. .RE .PP \fB\-W\fR \fIsecs\fR .RS 4 Set the timeout for initial network connections (by default they are indefinitely non\-blocking, or until the system interrupts the attempt)\&. Overrides the optional NUT_DEFAULT_CONNECT_TIMEOUT environment variable\&. .RE .SH "EXAMPLES" .sp To list all variables on an UPS named "myups" on a host called "mybox", with \fBupsd\fR(8) running on port \fI1234\fR: .sp .if n \{\ .RS 4 .\} .nf :; upsc myups@mybox:1234 battery\&.charge: 100\&.0 battery\&.voltage: 13\&.9 battery\&.voltage\&.nominal: 13\&.6 \&. \&. \&. .fi .if n \{\ .RE .\} .sp To retrieve all variables for "myups" as a JSON object: .sp .if n \{\ .RS 4 .\} .nf :; upsc \-j myups@mybox:1234 { "battery\&.charge": "100\&.0", "battery\&.voltage": "13\&.9", "battery\&.voltage\&.nominal": "13\&.6", \&.\&.\&. } .fi .if n \{\ .RE .\} .sp To list the UPSes configured on this system, along with their descriptions: .sp .if n \{\ .RS 4 .\} .nf :; upsc \-L apc: Back\-UPS 500 ppro2: Patriot Pro II .fi .if n \{\ .RE .\} .sp To retrieve the status for all UPSes connected to mybox, using Bourne\-shell syntax: .sp .if n \{\ .RS 4 .\} .nf :; for UPS in `upsc \-l mybox:1234`; do upsc $UPS ups\&.status done .fi .if n \{\ .RE .\} .sp To list clients connected on "myups": .sp .if n \{\ .RS 4 .\} .nf :; upsc \-c myups 127\&.0\&.0\&.1 ::1 192\&.168\&.1\&.2 .fi .if n \{\ .RE .\} .SH "SCRIPTED MODE" .sp If you run this program inside a shell script or similar to get the list of devices and variables, you should only consider using output from stdout, not stderr\&. .SH "DIAGNOSTICS" .sp upsc will either print a list of UPS names, a list of all supported variables and their values on the UPS, or an error message\&. If you do receive an error, make sure you have specified a valid UPS on the command line, that \fBupsd\fR(8) is really running on the other host, and that no firewalls are blocking you\&. .SH "HISTORY" .sp Earlier versions of this program used the \fIupsfetch\fR library and UDP sockets to talk to upsd\&. This version of upsc uses the new \fIupsclient\fR library, which only talks TCP\&. This is why \fIupsct\fR no longer exists\&. .SH "SEE ALSO" .sp \fBupslog\fR(8), \fBups.conf\fR(5), \fBupsd\fR(8) .SS "Internet resources:" .sp The NUT (Network UPS Tools) home page: https://www\&.networkupstools\&.org/historic/v2\&.8\&.5/