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
138
bin/common.sh
Executable file
138
bin/common.sh
Executable file
|
@ -0,0 +1,138 @@
|
|||
#!/bin/sh
|
||||
# SPDX-FileCopyrightText: 2024 Splunk, Inc.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# shellcheck disable=SC1000-SC9999 # Reason: This script is used in all the scripts and any change in this script would require a higher effort in testing all the scripts. Hence ignoring whole file.
|
||||
# # # we don't want to point OS's utilities -- e.g. ntpdate(1) -- to libraries which Splunk bundles in SPLUNK_HOME/lib/
|
||||
unset LD_PRELOAD LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH
|
||||
|
||||
# # # NIX-203 - set LANG env variable set to en_US to avoid parsing problems in other locales
|
||||
EngLocale=`locale -a | grep -i "en_US.utf"`
|
||||
if [ ! -z "$EngLocale" ]; then
|
||||
LC_ALL=`echo $EngLocale | awk 'NR==1 {printf $1}'`
|
||||
export LC_ALL
|
||||
fi
|
||||
|
||||
# # # are we in debug mode?
|
||||
if [ $# -ge 1 -a "x$1" = "x--debug" ] ; then
|
||||
DEBUG=1
|
||||
TEE_DEST=`dirname $0`/debug--`basename $0`--`date | sed 's/ /_/g;s/:/-/g'`
|
||||
else
|
||||
DEBUG=0
|
||||
TEE_DEST=/dev/null
|
||||
fi
|
||||
|
||||
DMESG_FILE=/var/log/dmesg
|
||||
OS_FILE=/etc/os-release
|
||||
# # # what OS is this?
|
||||
KERNEL=`uname -s`
|
||||
# # # what is the Kernel version?
|
||||
KERNEL_RELEASE=`uname -r`
|
||||
|
||||
# # # assert we are in a supported OS
|
||||
AWK=awk
|
||||
case "x$KERNEL" in
|
||||
"xLinux")
|
||||
if [ -e $OS_FILE ]; then
|
||||
UBUNTU_MAJOR_VERSION=`awk -F'[".]' '/VERSION_ID=/ {print $2} ' $OS_FILE`;
|
||||
OS_ID=$(awk -F'=' ' /ID_LIKE=/ {print $2}' $OS_FILE)
|
||||
else
|
||||
UBUNTU_MAJOR_VERSION="";
|
||||
echo "$OS_FILE does not exist. UBUNTU_MAJOR_VERSION will be empty." > $TEE_DEST
|
||||
fi
|
||||
# # # enable check for OS versions, if needed later
|
||||
if [ -e /etc/debian_version ]; then DEBIAN=true; else DEBIAN=false; fi
|
||||
|
||||
# # # /sbin/ is often absent in non-root users' PATH, and we want it for ifconfig(8)
|
||||
PATH=$PATH:/sbin/
|
||||
;;
|
||||
"xSunOS")
|
||||
# # # enable check for OS versions, if needed later
|
||||
if [ `uname -r` = "5.8" ]; then SOLARIS_8=true; else SOLARIS_8=false; fi
|
||||
if [ `uname -r` = "5.9" ]; then SOLARIS_9=true; else SOLARIS_9=false; fi
|
||||
if [ `uname -r` = "5.10" ]; then SOLARIS_10=true; else SOLARIS_10=false; fi
|
||||
if [ `uname -r` = "5.11" ]; then SOLARIS_11=true; else SOLARIS_11=false; fi
|
||||
|
||||
# # # eschew the antedeluvial awk
|
||||
AWK=nawk
|
||||
;;
|
||||
"xDarwin")
|
||||
OSX_MINOR_VERSION=`sw_vers | sed -En '/ProductVersion/ s/^[^.]+\.([0-9]+)(\.[^.])?$/\1/p'`
|
||||
OSX_MAJOR_VERSION=`sw_vers | sed -En '/ProductVersion/ s/^[^0-9]+([0-9]+)\.[0-9]+(\.[^.]+)?$/\1/p'`
|
||||
|
||||
# OSX_GE_SNOW_LEOPARD is for backward compatiblity.
|
||||
# Recommend that new code just use $OSX_MINOR_VERSION directly.
|
||||
if [ "$OSX_MAJOR_VERSION" == 10 ] && [ "$OSX_MINOR_VERSION" -ge 6 ]; then
|
||||
OSX_GE_SNOW_LEOPARD=true;
|
||||
else
|
||||
OSX_GE_SNOW_LEOPARD=false;
|
||||
fi
|
||||
|
||||
;;
|
||||
"xFreeBSD")
|
||||
;;
|
||||
"xAIX")
|
||||
;;
|
||||
"xHP-UX")
|
||||
;;
|
||||
*)
|
||||
echo "UNIX flavor [$KERNEL] unsupported for Splunk *NIX App, quitting" > $TEE_DEST
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# # # check for presence of required commands; we do not assume that which(1) exists, and roll our own
|
||||
queryHaveCommand () # returns 0 if found, 1 if not
|
||||
{
|
||||
[ "x$1" = "xeval" ] && shift
|
||||
for directory in `echo $PATH | sed 's/:/ /g'`
|
||||
do
|
||||
[ -x $directory/$1 ] && return 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
failLackCommand ()
|
||||
{
|
||||
echo "Not found command [$1] on this host, quitting" > $TEE_DEST
|
||||
exit 1
|
||||
}
|
||||
|
||||
failLackMultipleCommands ()
|
||||
{
|
||||
echo "Not found any of commands [$*] on this host, quitting" > $TEE_DEST
|
||||
exit 1
|
||||
}
|
||||
|
||||
assertHaveCommand ()
|
||||
{
|
||||
queryHaveCommand $1
|
||||
if [ $? -eq 1 ] ; then
|
||||
failLackCommand $1
|
||||
fi
|
||||
}
|
||||
|
||||
assertHaveCommandGivenPath ()
|
||||
{
|
||||
[ "x$1" = "xeval" ] && shift
|
||||
[ -x $1 ] && return
|
||||
echo "Not found commandGivenPath [$1] on this host, quitting" > $TEE_DEST
|
||||
exit 1
|
||||
}
|
||||
|
||||
failUnsupportedScript ()
|
||||
{
|
||||
echo "UNIX flavor [$KERNEL] unsupported for this script, quitting" > $TEE_DEST
|
||||
exit 0
|
||||
}
|
||||
|
||||
assertInvokerIsSuperuser ()
|
||||
{
|
||||
[ `id -u` -eq 0 ] && return
|
||||
echo "Must be superuser to run this script, quitting" > $TEE_DEST
|
||||
exit 1
|
||||
}
|
||||
|
||||
# # # check for presence of a few basic commands ubiquitous in our scripts
|
||||
assertHaveCommand $AWK
|
||||
assertHaveCommand egrep
|
Loading…
Add table
Add a link
Reference in a new issue