'\" t .\" Title: upslog .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 05/29/2025 .\" Manual: NUT Manual .\" Source: Network UPS Tools 2.8.3 .\" Language: English .\" .TH "UPSLOG" "8" "05/29/2025" "Network UPS Tools 2\&.8\&.3" "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" upslog \- UPS status logger .SH "SYNOPSIS" .sp \fBupslog \-h\fR .sp \fBupslog\fR [\fIOPTIONS\fR] .SH "DESCRIPTION" .sp \fBupslog\fR is a daemon that will poll a UPS at periodic intervals, fetch the variables that interest you, format them, and write them to a file\&. .sp The default format string includes variables that are supported by many common UPS models\&. See the description below to make your own\&. .SH "OPTIONS" .PP \fB\-f\fR \fIformat\fR .RS 4 Monitor the UPS using this format string\&. Be sure to enclose \fIformat\fR in quotes so your shell doesn\(cqt split it up\&. Valid escapes within this string are: .PP %% .RS 4 Insert a single "%" .RE .PP %t .RS 4 Insert a single TAB character (like printf("\et")) .RE .PP %TIME format% .RS 4 Insert the time with strftime formatting .RE .PP %ETIME% .RS 4 Insert the number of seconds since the start of "Epoch", ala time_t\&. This is now a 10\-digit number\&. .RE .PP %HOST% .RS 4 Insert the local hostname .RE .PP %UPSHOST% .RS 4 Insert the host of the UPS being monitored (the part of your logging specification, e\&.g\&. ups[@host[:port]]) .RE .PP %PID% .RS 4 Insert the PID of upslog itself .RE .PP %VAR varname% .RS 4 Insert the value of variable varname (see NUT developer documentation chapter "Variables" on\-line or in the docs/nut\-names\&.txt file in sources of the NUT version you have installed for more details) .RE .sp The default format string is: .sp .if n \{\ .RS 4 .\} .nf %TIME @Y@m@d @H@M@S% %VAR battery\&.charge% %VAR input\&.voltage% %VAR ups\&.load% [%VAR ups\&.status%] %VAR ups\&.temperature% %VAR input\&.frequency% .fi .if n \{\ .RE .\} .RE .PP \fB\-N\fR .RS 4 Prefix %UPSHOST%%t before the format string (whether default or custom)\&. Useful when logging many systems into same target\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br This option DOES NOT currently check if you already have %UPSHOST% in the formatting string (e\&.g\&. specified explicitly)\&. .sp .5v .RE .RE .PP \fB\-i\fR \fIinterval\fR .RS 4 Wait this many seconds between polls\&. This defaults to \fI30\fR seconds\&. .sp If you require tighter timing, consider writing your own logger using the \fBupsclient\fR(3) library\&. .RE .PP \fB\-d\fR \fIcount\fR .RS 4 Exit after specified amount of updates\&. Default is \fI0\fR for infinite loop (until interrupted otherwise)\&. .RE .PP \fB\-l\fR \fIlogfile\fR .RS 4 Store the results in this file\&. .sp You can use \- for stdout, but upslog will remain in the foreground by default\&. .sp Requires that the \-s option is also used for the single\-system logging\&. .sp Can be used with the \-m , will be added to the list\&. .RE .PP \fB\-D\fR .RS 4 Raise debugging verbosity level by one; upslog will remain in the foreground by default\&. .RE .PP \fB\-F\fR .RS 4 upslog will run in the foreground, regardless of logging target\&. .RE .PP \fB\-B\fR .RS 4 upslog will run in the background, regardless of logging target or debugging\&. .RE .PP \fB\-s\fR \fIups\fR .RS 4 Monitor this UPS\&. The format for this option is upsname[@hostname[:port]]\&. The default hostname is "localhost"\&. .sp The \fIupsname\fR may be an asterisk * to query UPSes currently served by \fIhostname\fR, and monitor each of them (into the same logging destination)\&. .sp Requires that the \-l option is also used for the single\-system logging\&. .sp Can be used with the \-m , will be added to the list\&. .RE .PP \fB\-m\fR \fItuple\fR .RS 4 Monitor multiple UPSs (provided several instances of such option)\&. .sp The format for this option is a tuple of UPS system and log file specification, separated by commas\&. An example would be: .sp .if n \{\ .RS 4 .\} .nf upsname@hostname:9999,/var/log/nut/cps\&.log .fi .if n \{\ .RE .\} .sp The \fIupsname\fR may be an asterisk * to query UPSes currently served by \fIhostname\fR, and monitor each of them (into the same logging destination)\&. .sp Tuples may specify \- as the logfile, to emit messages on stdout (e\&.g\&. to be collected by the system journal for services)\&. .sp Use of stdout via tuple\-based logging specifications also implies that upslog will remain in the foreground by default\&. .RE .PP \fB\-u\fR \fIusername\fR .RS 4 If started as \fIroot\fR, upslog will \fBsetuid\fR(2) to the user id associated with \fIusername\fR for security\&. .sp If \fIusername\fR is not defined, it will use the value that was compiled into the program\&. This defaults to \fInobody\fR (if not otherwise configured), which is far from ideal\&. .RE .SH "COMMON OPTIONS" .PP \fB\-h\fR .RS 4 Show the command\-line help message\&. .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 "SERVICE DELAYS" .sp The interval value is merely the number given to \fBsleep\fR(3) after running through the format string\&. Therefore, a query will actually take slightly longer than the interval, depending on the speed of your system\&. .SH "ON\-DEMAND LOGGING" .sp Sending a SIGUSR1 to a running \fBupslog\fR process makes it wake from the current sleep and log immediately\&. This is useful when triggered from a \fBupssched\fR event trigger (e\&.g\&. AT ONBATT or AT ONLINE) to ensure that an entry always exists, even if the power goes away for a period of time shorter than that specified by the \-i argument\&. .SH "LOG CO\-LOCATION" .sp It is possible and safe to specify the same log file (including \- for stdout) in several tuples, and it would only be opened or closed once without conflict\&. .sp Consider adding %UPSHOST% to your custom formatting string (e\&.g\&. by using the \fB\-N\fR command\-line option), in order to easily differentiate lines corresponding to different systems, when logging them to the same target\&. .SH "LOG ROTATION" .sp \fBupslog\fR writes its PID to upslog\&.pid, and will reopen the log file if you send it a SIGHUP\&. This allows it to keep running when the log is rotated by an external program\&. .SH "CAVEATS" .sp Historically this daemon supported logging of data for one UPS system per run (specified by the \-s option) into one log file name or stdout (specified by the \-l option)\&. .sp Since NUT v2\&.8\&.1 it allowed to log several devices (each logged into its individual destination file or common stdout) as specified by multiple \-m tuple options\&. But the two modes were effectively exclusive of each other (single\-UPS options were ignored if tuples are also provided)\&. .sp Since NUT v2\&.8\&.3, the single\-UPS options are added to the list of tuples, so both legacy and new options can be reliably used to monitor multiple devices in the same run\&. .SH "SEE ALSO" .SS "Server:" .sp \fBupsd\fR(8) .SS "Clients:" .sp \fBupsc\fR(8), \fBupscmd\fR(8), \fBupsrw\fR(8), \fBupsmon\fR(8), \fBupssched\fR(8) .SS "Internet resources:" .sp The NUT (Network UPS Tools) home page: https://www\&.networkupstools\&.org/historic/v2\&.8\&.3/