Import Splunk Add-On for Unix and Linux version 9.2.0
This commit is contained in:
commit
92ac2630a1
77 changed files with 11487 additions and 0 deletions
52
bin/uptime.sh
Executable file
52
bin/uptime.sh
Executable file
|
@ -0,0 +1,52 @@
|
|||
#!/bin/sh
|
||||
# SPDX-FileCopyrightText: 2024 Splunk, Inc.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. "$(dirname "$0")"/common.sh
|
||||
|
||||
PRINTF='END {printf "%s SystemUpTime=%s\n", DATE, UPTIME}'
|
||||
|
||||
# On HP-UX the `ps` command will only recognize the `-o` option if
|
||||
# the `UNIX95` environment variable is set. So do it.
|
||||
#
|
||||
# Careful: The `UNIX95` environment variable affects other common
|
||||
# commands like `cp`.
|
||||
if [ "$KERNEL" = "HP-UX" ]; then
|
||||
export UNIX95=1
|
||||
fi
|
||||
|
||||
# This should work for any POSIX-compliant system, but in case it doesn't
|
||||
# we have left the individual OS names here to be broken out later on.
|
||||
if [ "$KERNEL" = "Linux" ] || [ "$KERNEL" = "SunOS" ] || [ "$KERNEL" = "AIX" ] || [ "$KERNEL" = "HP-UX" ] || [ "$KERNEL" = "Darwin" ] || [ "$KERNEL" = "FreeBSD" ] ; then
|
||||
assertHaveCommand date
|
||||
assertHaveCommand ps
|
||||
CMD='eval date; LC_ALL=POSIX ps -o etime= -p 1'
|
||||
# Get the date.
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_0='NR==1 {DATE=$0}'
|
||||
# Parse timestamp using only POSIX AWK functions. The match, do/while,
|
||||
# and exponentiation commands may not be available on some systems.
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_1='NR==2 {
|
||||
if (index($1,"-") != 0) {
|
||||
split($1, array, "-")
|
||||
UPTIME=86400*array[1]
|
||||
num=split(array[2], TIME, ":")
|
||||
} else {
|
||||
UPTIME=0
|
||||
num=split($1, TIME, ":")
|
||||
}
|
||||
for (i=num; i>0; i--) {
|
||||
SECS=TIME[i]
|
||||
for (j=num-i; j>0; j--) {
|
||||
SECS = SECS * 60
|
||||
}
|
||||
UPTIME = UPTIME + SECS
|
||||
}
|
||||
}'
|
||||
MASSAGE="$PARSE_0 $PARSE_1"
|
||||
fi
|
||||
|
||||
$CMD | tee "$TEE_DEST" | $AWK "$HEADERIZE $MASSAGE $FILL_BLANKS $PRINTF" header="$HEADER"
|
||||
echo "Cmd = [$CMD]; | $AWK '$HEADERIZE $MASSAGE $FILL_BLANKS $PRINTF' header=\"$HEADER\"" >> "$TEE_DEST"
|
Loading…
Add table
Add a link
Reference in a new issue