mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-04-15 22:00:06 -04:00
Merge branch 'master' into cleanup/check_icmp
This commit is contained in:
commit
3f1db8dc3a
6 changed files with 640 additions and 698 deletions
|
|
@ -1,11 +1,11 @@
|
|||
BasedOnStyle: LLVM
|
||||
UseTab: ForContinuationAndIndentation
|
||||
IndentWidth: 4
|
||||
TabWidth: 4
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
BreakBeforeBraces: Attach
|
||||
AlignConsecutiveMacros: true
|
||||
ColumnLimit: 180
|
||||
ColumnLimit: 140
|
||||
IndentPPDirectives: AfterHash
|
||||
SortIncludes: Never
|
||||
AllowShortEnumsOnASingleLine: false
|
||||
BinPackArguments: true
|
||||
|
|
|
|||
26
.github/mock.sh
vendored
26
.github/mock.sh
vendored
|
|
@ -2,6 +2,8 @@
|
|||
|
||||
set -x
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
BASE_PATH="/src"
|
||||
|
|
@ -18,7 +20,11 @@ SPEC_FILE="${SPEC_DIR}monitoring-plugins.spec"
|
|||
cd ${BASE_PATH}
|
||||
|
||||
dnf -y --setopt="tsflags=nodocs" update && \
|
||||
if [ ${distro_id} != "fedora" ]; then dnf -y --setopt="tsflags=nodocs" install epel-release; else platform_id="$(echo ${platform_id} | sed s/^f/fc/)"; fi && \
|
||||
if [ "${distro_id}" != "fedora" ]; then
|
||||
dnf -y --setopt="tsflags=nodocs" install epel-release;
|
||||
else
|
||||
platform_id="$(echo "${platform_id}" | sed s/^f/fc/)";
|
||||
fi && \
|
||||
case ${distro_id} in
|
||||
ol)
|
||||
case ${platform_id} in
|
||||
|
|
@ -32,19 +38,27 @@ dnf -y --setopt="tsflags=nodocs" update && \
|
|||
;;
|
||||
esac
|
||||
dnf -y --setopt="tsflags=nodocs" install mock rpm-build git-core && \
|
||||
usermod -a -G mock $(whoami)
|
||||
usermod -a -G mock "$(whoami)"
|
||||
|
||||
SRC_RPM="monitoring-plugins-*-1.${platform_id}.src.rpm"
|
||||
|
||||
if command -v git > /dev/null 2>&1; then
|
||||
git config --global --add safe.directory ${BASE_PATH}
|
||||
SHA="$(git rev-parse HEAD)"
|
||||
sed "s/^%global commit.*/%global commit ${SHA}/" ${SPEC_FILE} > ${SPEC_DIR}monitoring-plugins-git.spec
|
||||
sed -i "s/^%global fromgit.*/%global fromgit 1/" ${SPEC_DIR}monitoring-plugins-git.spec
|
||||
SPEC_FILE="${SPEC_DIR}monitoring-plugins-git.spec"
|
||||
SRC_RPM="monitoring-plugins-*git.$(echo ${SHA:0:7})*.${platform_id}.src.rpm"
|
||||
SRC_RPM="monitoring-plugins-*git.${SHA:0:7}*.${platform_id}.src.rpm"
|
||||
fi
|
||||
|
||||
mkdir -p "${SRCRPM_DIR}" "${RPM_DIR}"
|
||||
#rpmbuild --undefine=_disable_source_fetch --define "_sourcedir ${SOURCE_DIR}" -ba ${SPEC_FILE}
|
||||
dnf -y --setopt="tsflags=nodocs" install rpmdevtools && spectool -g -C ${SOURCE_DIR} ${SPEC_FILE} && \
|
||||
mock --dnf --clean --spec ${SPEC_FILE} --sources=${SOURCE_DIR} --result=${SRCRPM_DIR} --build || { cat ${SRCRPM_DIR}/{root,build}.log; exit 1; }
|
||||
mock --dnf --clean --sources=${SOURCE_DIR} --result=${RPM_DIR} --rebuild ${SRCRPM_DIR}/${SRC_RPM} || { cat ${RPM_DIR}/{root,build}.log; exit 1; }
|
||||
dnf -y --setopt="tsflags=nodocs" install rpmdevtools && \
|
||||
spectool -g -C ${SOURCE_DIR} ${SPEC_FILE} && \
|
||||
{ mock --dnf --clean --spec ${SPEC_FILE} --sources=${SOURCE_DIR} --result=${SRCRPM_DIR} --build || \
|
||||
{ cat ${SRCRPM_DIR}/{root,build}.log; exit 1; } }
|
||||
|
||||
mock --dnf --clean --sources=${SOURCE_DIR} --result=${RPM_DIR} --rebuild "${SRCRPM_DIR}"/${SRC_RPM} || \
|
||||
{ cat ${RPM_DIR}/{root,build}.log; exit 1; }
|
||||
|
||||
ls -la ${SOURCE_DIR} ${SRCRPM_DIR} ${RPM_DIR}
|
||||
|
|
|
|||
4
.github/prepare_debian.sh
vendored
4
.github/prepare_debian.sh
vendored
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
set -e
|
||||
set -euo pipefail
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
|
|
@ -127,5 +127,5 @@ sed "/NP_HOST_TLS_CERT/s/.*/'NP_HOST_TLS_CERT' => '$(hostname)',/" -i /src/.gith
|
|||
|
||||
# create some test files to lower inodes
|
||||
for i in $(seq 10); do
|
||||
touch /media/ramdisk2/test.$1
|
||||
touch /media/ramdisk2/test.$i
|
||||
done
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -97,11 +97,12 @@ my $opt_V ;
|
|||
my $opt_u;
|
||||
my $opt_n;
|
||||
my $opt_x ;
|
||||
my $opt_d;
|
||||
my %excluded ;
|
||||
my %unused_names ;
|
||||
my @unused_ports ;
|
||||
my %session_opts;
|
||||
|
||||
my @exclude_descriptions;
|
||||
|
||||
|
||||
|
||||
|
|
@ -134,6 +135,7 @@ if (!defined($session)) {
|
|||
}
|
||||
|
||||
|
||||
push(@snmpoids,$snmpLocIfDescr);
|
||||
push(@snmpoids,$snmpIfOperStatus);
|
||||
push(@snmpoids,$snmpIfAdminStatus);
|
||||
push(@snmpoids,$snmpIfDescr);
|
||||
|
|
@ -180,18 +182,28 @@ foreach $key (keys %ifStatus) {
|
|||
if ($ifStatus{$key}{$snmpIfAdminStatus} == 1 ) {
|
||||
#check only if interface is not excluded
|
||||
if (!defined $unused_names{$ifStatus{$key}{$snmpIfDescr}} ) {
|
||||
# check only if interface type is not listed in %excluded
|
||||
if (!defined $excluded{$ifStatus{$key}{$snmpIfType}} ) {
|
||||
if ($ifStatus{$key}{$snmpIfOperStatus} == 1 ) { $ifup++ ; }
|
||||
if ($ifStatus{$key}{$snmpIfOperStatus} == 2 ) {
|
||||
$ifdown++ ;
|
||||
if (defined $ifXTable) {
|
||||
$ifmessage .= sprintf("%s: down -> %s<BR>\n", $ifStatus{$key}{$snmpIfName}, $ifStatus{$key}{$snmpIfAlias});
|
||||
}else{
|
||||
$ifmessage .= sprintf("%s: down <BR>\n",$ifStatus{$key}{$snmpIfDescr});
|
||||
}
|
||||
#check only if interface is not excluded (by description)
|
||||
#counter for matching descriptions
|
||||
my $match_descr = 0;
|
||||
foreach my $description (@exclude_descriptions) {
|
||||
if ($ifStatus{$key}{$snmpLocIfDescr} =~ /^$description/) { $match_descr = 1; }
|
||||
}
|
||||
if ($match_descr == 0) {
|
||||
# check only if interface type is not listed in %excluded
|
||||
if (!defined $excluded{$ifStatus{$key}{$snmpIfType}} ) {
|
||||
if ($ifStatus{$key}{$snmpIfOperStatus} == 1 ) { $ifup++ ; }
|
||||
if ($ifStatus{$key}{$snmpIfOperStatus} == 2 ) {
|
||||
$ifdown++ ;
|
||||
if (defined $ifXTable) {
|
||||
$ifmessage .= sprintf("%s: down -> %s<BR>\n", $ifStatus{$key}{$snmpIfName}, $ifStatus{$key}{$snmpIfAlias});
|
||||
}else{
|
||||
$ifmessage .= sprintf("%s: down <BR>\n",$ifStatus{$key}{$snmpIfDescr});
|
||||
}
|
||||
}
|
||||
if ($ifStatus{$key}{$snmpIfOperStatus} == 5 ) { $ifdormant++ ;}
|
||||
} else {
|
||||
$ifexclude++;
|
||||
}
|
||||
if ($ifStatus{$key}{$snmpIfOperStatus} == 5 ) { $ifdormant++ ;}
|
||||
} else {
|
||||
$ifexclude++;
|
||||
}
|
||||
|
|
@ -264,6 +276,9 @@ sub print_help() {
|
|||
printf " the descriptive name. Do not use if you don't know what this is. \n";
|
||||
printf " -x (--exclude) A comma separated list of ifType values that should be excluded \n";
|
||||
printf " from the report (default for an empty list is PPP(23).\n";
|
||||
printf " -d (--exclude_ports_by_description) A comma separated list of LocIfDescr values that should be excluded \n";
|
||||
printf " from the report (default is an empty exclusion list). Done using regexp '/^arg/', ex:\n";
|
||||
printf " '-d connect,test' will match with descriptions like 'testing phase' but not 'in testing'.\n";
|
||||
printf " -n (--unused_ports_by_name) A comma separated list of ifDescr values that should be excluded \n";
|
||||
printf " from the report (default is an empty exclusion list).\n";
|
||||
printf " -u (--unused_ports) A comma separated list of ifIndex values that should be excluded \n";
|
||||
|
|
@ -306,6 +321,7 @@ sub process_arguments() {
|
|||
"I" => \$ifXTable, "ifmib" => \$ifXTable,
|
||||
"x:s" => \$opt_x, "exclude:s" => \$opt_x,
|
||||
"u=s" => \$opt_u, "unused_ports=s" => \$opt_u,
|
||||
"d=s" => \$opt_d, "exclude_ports_by_description=s" => \$opt_d,
|
||||
"n=s" => \$opt_n, "unused_ports_by_name=s" => \$opt_n,
|
||||
"M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize,
|
||||
"t=i" => \$timeout, "timeout=i" => \$timeout,
|
||||
|
|
@ -414,6 +430,11 @@ sub process_arguments() {
|
|||
}
|
||||
}
|
||||
|
||||
# Exclude interfaces by descriptions
|
||||
if (defined $opt_d) {
|
||||
@exclude_descriptions = split(/,/,$opt_d);
|
||||
}
|
||||
|
||||
# Excluded interface descriptors
|
||||
if (defined $opt_n) {
|
||||
my @unused = split(/,/,$opt_n);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
* Copyright (c) 2000 Tom Shields
|
||||
* 2004 Alain Richard <alain.richard@equation.fr>
|
||||
* 2004 Arnaud Quette <arnaud.quette@mgeups.com>
|
||||
* Copyright (c) 2002-2023 Monitoring Plugins Development Team
|
||||
* Copyright (c) 2002-2024 Monitoring Plugins Development Team
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
*****************************************************************************/
|
||||
|
||||
const char *progname = "check_ups";
|
||||
const char *copyright = "2000-2023";
|
||||
const char *copyright = "2000-2024";
|
||||
const char *email = "devel@monitoring-plugins.org";
|
||||
|
||||
#include "common.h"
|
||||
|
|
@ -141,7 +141,6 @@ int main(int argc, char **argv) {
|
|||
return STATE_CRITICAL;
|
||||
}
|
||||
|
||||
|
||||
if (supported_options & UPS_STATUS) {
|
||||
|
||||
ups_status = strdup("");
|
||||
|
|
@ -151,8 +150,7 @@ int main(int argc, char **argv) {
|
|||
if (config.status & UPSSTATUS_OFF) {
|
||||
xasprintf(&ups_status, "Off");
|
||||
result = STATE_CRITICAL;
|
||||
} else if ((config.status & (UPSSTATUS_OB | UPSSTATUS_LB)) ==
|
||||
(UPSSTATUS_OB | UPSSTATUS_LB)) {
|
||||
} else if ((config.status & (UPSSTATUS_OB | UPSSTATUS_LB)) == (UPSSTATUS_OB | UPSSTATUS_LB)) {
|
||||
xasprintf(&ups_status, _("On Battery, Low Battery"));
|
||||
result = STATE_CRITICAL;
|
||||
} else {
|
||||
|
|
@ -171,8 +169,7 @@ int main(int argc, char **argv) {
|
|||
xasprintf(&ups_status, "%s%s", ups_status, _(", Calibrating"));
|
||||
}
|
||||
if (config.status & UPSSTATUS_RB) {
|
||||
xasprintf(&ups_status, "%s%s", ups_status,
|
||||
_(", Replace Battery"));
|
||||
xasprintf(&ups_status, "%s%s", ups_status, _(", Replace Battery"));
|
||||
result = max_state(result, STATE_WARNING);
|
||||
}
|
||||
if (config.status & UPSSTATUS_BYPASS) {
|
||||
|
|
@ -233,24 +230,16 @@ int main(int argc, char **argv) {
|
|||
}
|
||||
|
||||
if (config.check_variable == UPS_UTILITY) {
|
||||
if (config.check_crit &&
|
||||
ups_utility_deviation >= config.critical_value) {
|
||||
if (config.check_crit && ups_utility_deviation >= config.critical_value) {
|
||||
result = STATE_CRITICAL;
|
||||
} else if (config.check_warn &&
|
||||
ups_utility_deviation >= config.warning_value) {
|
||||
} else if (config.check_warn && ups_utility_deviation >= config.warning_value) {
|
||||
result = max_state(result, STATE_WARNING);
|
||||
}
|
||||
xasprintf(&data, "%s",
|
||||
perfdata("voltage", (long)(1000 * ups_utility_voltage),
|
||||
"mV", config.check_warn,
|
||||
(long)(1000 * config.warning_value),
|
||||
config.check_crit,
|
||||
(long)(1000 * config.critical_value), true, 0,
|
||||
false, 0));
|
||||
perfdata("voltage", (long)(1000 * ups_utility_voltage), "mV", config.check_warn, (long)(1000 * config.warning_value),
|
||||
config.check_crit, (long)(1000 * config.critical_value), true, 0, false, 0));
|
||||
} else {
|
||||
xasprintf(&data, "%s",
|
||||
perfdata("voltage", (long)(1000 * ups_utility_voltage),
|
||||
"mV", false, 0, false, 0, true, 0, false, 0));
|
||||
xasprintf(&data, "%s", perfdata("voltage", (long)(1000 * ups_utility_voltage), "mV", false, 0, false, 0, true, 0, false, 0));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -268,22 +257,16 @@ int main(int argc, char **argv) {
|
|||
xasprintf(&message, "%sBatt=%3.1f%% ", message, ups_battery_percent);
|
||||
|
||||
if (config.check_variable == UPS_BATTPCT) {
|
||||
if (config.check_crit &&
|
||||
ups_battery_percent <= config.critical_value) {
|
||||
if (config.check_crit && ups_battery_percent <= config.critical_value) {
|
||||
result = STATE_CRITICAL;
|
||||
} else if (config.check_warn &&
|
||||
ups_battery_percent <= config.warning_value) {
|
||||
} else if (config.check_warn && ups_battery_percent <= config.warning_value) {
|
||||
result = max_state(result, STATE_WARNING);
|
||||
}
|
||||
xasprintf(&data, "%s %s", data,
|
||||
perfdata("battery", (long)ups_battery_percent, "%",
|
||||
config.check_warn, (long)(config.warning_value),
|
||||
config.check_crit, (long)(config.critical_value),
|
||||
true, 0, true, 100));
|
||||
perfdata("battery", (long)ups_battery_percent, "%", config.check_warn, (long)(config.warning_value),
|
||||
config.check_crit, (long)(config.critical_value), true, 0, true, 100));
|
||||
} else {
|
||||
xasprintf(&data, "%s %s", data,
|
||||
perfdata("battery", (long)ups_battery_percent, "%", false,
|
||||
0, false, 0, true, 0, true, 100));
|
||||
xasprintf(&data, "%s %s", data, perfdata("battery", (long)ups_battery_percent, "%", false, 0, false, 0, true, 0, true, 100));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -301,22 +284,16 @@ int main(int argc, char **argv) {
|
|||
xasprintf(&message, "%sLoad=%3.1f%% ", message, ups_load_percent);
|
||||
|
||||
if (config.check_variable == UPS_LOADPCT) {
|
||||
if (config.check_crit &&
|
||||
ups_load_percent >= config.critical_value) {
|
||||
if (config.check_crit && ups_load_percent >= config.critical_value) {
|
||||
result = STATE_CRITICAL;
|
||||
} else if (config.check_warn &&
|
||||
ups_load_percent >= config.warning_value) {
|
||||
} else if (config.check_warn && ups_load_percent >= config.warning_value) {
|
||||
result = max_state(result, STATE_WARNING);
|
||||
}
|
||||
xasprintf(&data, "%s %s", data,
|
||||
perfdata("load", (long)ups_load_percent, "%",
|
||||
config.check_warn, (long)(config.warning_value),
|
||||
config.check_crit, (long)(config.critical_value),
|
||||
true, 0, true, 100));
|
||||
perfdata("load", (long)ups_load_percent, "%", config.check_warn, (long)(config.warning_value), config.check_crit,
|
||||
(long)(config.critical_value), true, 0, true, 100));
|
||||
} else {
|
||||
xasprintf(&data, "%s %s", data,
|
||||
perfdata("load", (long)ups_load_percent, "%", false, 0,
|
||||
false, 0, true, 0, true, 100));
|
||||
xasprintf(&data, "%s %s", data, perfdata("load", (long)ups_load_percent, "%", false, 0, false, 0, true, 0, true, 100));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -345,19 +322,14 @@ int main(int argc, char **argv) {
|
|||
if (config.check_variable == UPS_TEMP) {
|
||||
if (config.check_crit && ups_temperature >= config.critical_value) {
|
||||
result = STATE_CRITICAL;
|
||||
} else if (config.check_warn &&
|
||||
ups_temperature >= config.warning_value) {
|
||||
} else if (config.check_warn && ups_temperature >= config.warning_value) {
|
||||
result = max_state(result, STATE_WARNING);
|
||||
}
|
||||
xasprintf(&data, "%s %s", data,
|
||||
perfdata("temp", (long)ups_temperature, tunits,
|
||||
config.check_warn, (long)(config.warning_value),
|
||||
config.check_crit, (long)(config.critical_value),
|
||||
true, 0, false, 0));
|
||||
perfdata("temp", (long)ups_temperature, tunits, config.check_warn, (long)(config.warning_value), config.check_crit,
|
||||
(long)(config.critical_value), true, 0, false, 0));
|
||||
} else {
|
||||
xasprintf(&data, "%s %s", data,
|
||||
perfdata("temp", (long)ups_temperature, tunits, false, 0,
|
||||
false, 0, true, 0, false, 0));
|
||||
xasprintf(&data, "%s %s", data, perfdata("temp", (long)ups_temperature, tunits, false, 0, false, 0, true, 0, false, 0));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -376,19 +348,14 @@ int main(int argc, char **argv) {
|
|||
if (config.check_variable == UPS_REALPOWER) {
|
||||
if (config.check_crit && ups_realpower >= config.critical_value) {
|
||||
result = STATE_CRITICAL;
|
||||
} else if (config.check_warn &&
|
||||
ups_realpower >= config.warning_value) {
|
||||
} else if (config.check_warn && ups_realpower >= config.warning_value) {
|
||||
result = max_state(result, STATE_WARNING);
|
||||
}
|
||||
xasprintf(&data, "%s %s", data,
|
||||
perfdata("realpower", (long)ups_realpower, "W",
|
||||
config.check_warn, (long)(config.warning_value),
|
||||
config.check_crit, (long)(config.critical_value),
|
||||
true, 0, false, 0));
|
||||
perfdata("realpower", (long)ups_realpower, "W", config.check_warn, (long)(config.warning_value), config.check_crit,
|
||||
(long)(config.critical_value), true, 0, false, 0));
|
||||
} else {
|
||||
xasprintf(&data, "%s %s", data,
|
||||
perfdata("realpower", (long)ups_realpower, "W", false, 0,
|
||||
false, 0, true, 0, false, 0));
|
||||
xasprintf(&data, "%s %s", data, perfdata("realpower", (long)ups_realpower, "W", false, 0, false, 0, true, 0, false, 0));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -425,8 +392,7 @@ int determine_status(ups_config *config, int *supported_options) {
|
|||
char temp_buffer[MAX_INPUT_BUFFER];
|
||||
|
||||
strcpy(temp_buffer, recv_buffer);
|
||||
for (char *ptr = (char *)strtok(temp_buffer, " "); ptr != NULL;
|
||||
ptr = (char *)strtok(NULL, " ")) {
|
||||
for (char *ptr = (char *)strtok(temp_buffer, " "); ptr != NULL; ptr = (char *)strtok(NULL, " ")) {
|
||||
if (!strcmp(ptr, "OFF")) {
|
||||
config->status |= UPSSTATUS_OFF;
|
||||
} else if (!strcmp(ptr, "OL")) {
|
||||
|
|
@ -467,8 +433,7 @@ int get_ups_variable(const char *varname, char *buf, const ups_config config) {
|
|||
|
||||
/* create the command string to send to the UPS daemon */
|
||||
/* Add LOGOUT to avoid read failure logs */
|
||||
int res = snprintf(send_buffer, sizeof(send_buffer),
|
||||
"GET VAR %s %s\nLOGOUT\n", config.ups_name, varname);
|
||||
int res = snprintf(send_buffer, sizeof(send_buffer), "GET VAR %s %s\nLOGOUT\n", config.ups_name, varname);
|
||||
if ((res > 0) && ((size_t)res >= sizeof(send_buffer))) {
|
||||
printf("%s\n", _("UPS name to long for buffer"));
|
||||
return ERROR;
|
||||
|
|
@ -477,9 +442,7 @@ int get_ups_variable(const char *varname, char *buf, const ups_config config) {
|
|||
char temp_buffer[MAX_INPUT_BUFFER];
|
||||
|
||||
/* send the command to the daemon and get a response back */
|
||||
if (process_tcp_request(config.server_address, config.server_port,
|
||||
send_buffer, temp_buffer,
|
||||
sizeof(temp_buffer)) != STATE_OK) {
|
||||
if (process_tcp_request(config.server_address, config.server_port, send_buffer, temp_buffer, sizeof(temp_buffer)) != STATE_OK) {
|
||||
printf("%s\n", _("Invalid response received from host"));
|
||||
return ERROR;
|
||||
}
|
||||
|
|
@ -496,8 +459,7 @@ int get_ups_variable(const char *varname, char *buf, const ups_config config) {
|
|||
ptr[len - 1] = 0;
|
||||
}
|
||||
if (strcmp(ptr, "ERR UNKNOWN-UPS") == 0) {
|
||||
printf(_("CRITICAL - no such UPS '%s' on that host\n"),
|
||||
config.ups_name);
|
||||
printf(_("CRITICAL - no such UPS '%s' on that host\n"), config.ups_name);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
|
|
@ -694,8 +656,7 @@ void print_help(void) {
|
|||
printf(" %s\n", "-T, --temperature");
|
||||
printf(" %s\n", _("Output of temperatures in Celsius"));
|
||||
printf(" %s\n", "-v, --variable=STRING");
|
||||
printf(" %s %s\n", _("Valid values for STRING are"),
|
||||
"LINE, TEMP, BATTPCT, LOADPCT or REALPOWER");
|
||||
printf(" %s %s\n", _("Valid values for STRING are"), "LINE, TEMP, BATTPCT, LOADPCT or REALPOWER");
|
||||
|
||||
printf(UT_WARN_CRIT);
|
||||
|
||||
|
|
@ -731,8 +692,7 @@ void print_help(void) {
|
|||
"with Russell Kroll's"));
|
||||
printf(" %s\n", _("Network UPS Tools be installed on the remote host. If "
|
||||
"you do not have the"));
|
||||
printf(" %s\n",
|
||||
_("package installed on your system, you can download it from"));
|
||||
printf(" %s\n", _("package installed on your system, you can download it from"));
|
||||
printf(" %s\n", _("http://www.networkupstools.org"));
|
||||
|
||||
printf(UT_SUPPORT);
|
||||
|
|
|
|||
Loading…
Reference in a new issue