Merge in Splunk Add-On for Unix and Linux version 10.0.0
This commit is contained in:
parent
ce9dada330
commit
17d6163514
14 changed files with 461 additions and 294 deletions
143
bin/cpu.sh
143
bin/cpu.sh
|
@ -7,9 +7,9 @@
|
|||
|
||||
assertHaveCommand column
|
||||
|
||||
HEADER='CPU pctUser pctNice pctSystem pctIowait pctIdle'
|
||||
HEADER='Datetime CPU pctUser pctNice pctSystem pctIowait pctIdle'
|
||||
HEADERIZE="BEGIN {print \"$HEADER\"}"
|
||||
PRINTF='{printf "%-3s %9s %9s %9s %9s %9s\n", cpu, pctUser, pctNice, pctSystem, pctIowait, pctIdle}'
|
||||
PRINTF='{printf "%-28s %-3s %9s %9s %9s %9s %9s\n", datetime, cpu, pctUser, pctNice, pctSystem, pctIowait, pctIdle}'
|
||||
|
||||
if [ "$KERNEL" = "Linux" ] ; then
|
||||
queryHaveCommand sar
|
||||
|
@ -17,19 +17,32 @@ if [ "$KERNEL" = "Linux" ] ; then
|
|||
queryHaveCommand mpstat
|
||||
FOUND_MPSTAT=$?
|
||||
if [ $FOUND_SAR -eq 0 ] ; then
|
||||
CMD='sar -P ALL 1 1'
|
||||
CMD='sar -P ALL 2 5'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{cpu=$(NF-6); pctUser=$(NF-5); pctNice=$(NF-4); pctSystem=$(NF-3); pctIowait=$(NF-2); pctIdle=$NF}'
|
||||
FORMAT='{datetime = strftime("%m/%d/%y_%H:%M:%S_%Z"); cpu=$(NF-6); pctUser=$(NF-5); pctNice=$(NF-4); pctSystem=$(NF-3); pctIowait=$(NF-2); pctIdle=$NF}'
|
||||
elif [ $FOUND_MPSTAT -eq 0 ] ; then
|
||||
CMD='mpstat -P ALL 1 1'
|
||||
CMD='mpstat -P ALL 2 5'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{cpu=$(NFIELDS-10); pctUser=$(NFIELDS-9); pctNice=$(NFIELDS-8); pctSystem=$(NFIELDS-7); pctIowait=$(NFIELDS-6); pctIdle=$NF}'
|
||||
FORMAT='{datetime = strftime("%m/%d/%y_%H:%M:%S_%Z"); cpu=$(NFIELDS-10); pctUser=$(NFIELDS-9); pctNice=$(NFIELDS-8); pctSystem=$(NFIELDS-7); pctIowait=$(NFIELDS-6); pctIdle=$NF}'
|
||||
else
|
||||
failLackMultipleCommands sar mpstat
|
||||
fi
|
||||
# shellcheck disable=SC2016
|
||||
FILTER='($0 ~ /CPU/) { if($(NF-1) ~ /gnice/){ NFIELDS=NF; } else {NFIELDS=NF+1;} next} /Average|Linux|^$|%/ {next}'
|
||||
|
||||
PRINTF='{
|
||||
if ($0 ~ /all/) {
|
||||
print header;
|
||||
printf "%-28s %-3s %9s %9s %9s %9s %9s\n", datetime, cpu, pctUser, pctNice, pctSystem, pctIowait, pctIdle;
|
||||
} else {
|
||||
printf "%-28s %-3s %9s %9s %9s %9s %9s\n", datetime, cpu, pctUser, pctNice, pctSystem, pctIowait, pctIdle;
|
||||
}
|
||||
}'
|
||||
$CMD | tee "$TEE_DEST" | $AWK "$FILTER $FORMAT $PRINTF" header="$HEADER" | column -t
|
||||
echo "Cmd = [$CMD]; | $AWK '$FILTER $FORMAT $PRINTF' header=\"$HEADER\"" >> "$TEE_DEST"
|
||||
exit
|
||||
elif [ "$KERNEL" = "SunOS" ] ; then
|
||||
formatted_date=$(date +"%m/%d/%y_%H:%M:%S_%Z")
|
||||
if [ "$SOLARIS_8" = "true" ] || [ "$SOLARIS_9" = "true" ] ; then
|
||||
CMD='eval mpstat -a -p 1 2 | tail -1 | sed "s/^[ ]*0/all/"; mpstat -p 1 2 | tail -r'
|
||||
else
|
||||
|
@ -37,9 +50,9 @@ elif [ "$KERNEL" = "SunOS" ] ; then
|
|||
fi
|
||||
assertHaveCommand "$CMD"
|
||||
# shellcheck disable=SC2016
|
||||
FILTER='($1=="CPU") {exit 1}'
|
||||
FILTER='($1=="CPU") {exit 1}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{cpu=$1; pctUser=$(NF-4); pctNice="0"; pctSystem=$(NF-3); pctIowait=$(NF-2); pctIdle=$(NF-1)}'
|
||||
FORMAT='{datetime="'"$formatted_date"'"; cpu=$1; pctUser=$(NF-4); pctNice="0"; pctSystem=$(NF-3); pctIowait=$(NF-2); pctIdle=$(NF-1)}'
|
||||
elif [ "$KERNEL" = "AIX" ] ; then
|
||||
queryHaveCommand mpstat
|
||||
queryHaveCommand lparstat
|
||||
|
@ -78,46 +91,72 @@ elif [ "$KERNEL" = "AIX" ] ; then
|
|||
DEFINE="-v CPUPool=$CPUPool -v OnlineVirtualCPUs=$OnlineVirtualCPUs -v EntitledCapacity=$EntitledCapacity"
|
||||
|
||||
# Get cpu stats using mpstat command and manipulate the output for adding extra fields
|
||||
CMD='mpstat -a 1 1'
|
||||
CMD='mpstat -a 2 5'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='BEGIN {flag = 0}
|
||||
|
||||
FORMAT='
|
||||
function get_current_time() {
|
||||
# Use "date" to fetch the current time and store it in a variable
|
||||
command = "date +\"%m/%d/%y_%H:%M:%S_%Z\"";
|
||||
command | getline datetime;
|
||||
close(command);
|
||||
return datetime;
|
||||
}
|
||||
BEGIN {
|
||||
flag = 0;
|
||||
header = "";
|
||||
}
|
||||
{
|
||||
if($0 ~ /System configuration|^$/) {next}
|
||||
if($1 ~ /^-+$/ && header != "") {
|
||||
print header;
|
||||
next;
|
||||
}
|
||||
if($0 ~ /cpu / && flag == 1) {next}
|
||||
if(flag == 1)
|
||||
{
|
||||
# Prepend extra field values from lparstat
|
||||
for(i=NF+4; i>=4; i--)
|
||||
for(i=NF+5; i>=5; i--)
|
||||
{
|
||||
$i = $(i-3);
|
||||
$i = $(i-4);
|
||||
}
|
||||
if($0 ~ /ALL/)
|
||||
{
|
||||
$1 = CPUPool;
|
||||
$2 = OnlineVirtualCPUs;
|
||||
$3 = EntitledCapacity;
|
||||
$1 = get_current_time();
|
||||
$2 = CPUPool;
|
||||
$3 = OnlineVirtualCPUs;
|
||||
$4 = EntitledCapacity;
|
||||
}
|
||||
else
|
||||
{
|
||||
$1 = "-";
|
||||
$1 = get_current_time();
|
||||
$2 = "-";
|
||||
$3 = "-";
|
||||
$4 = "-";
|
||||
}
|
||||
}
|
||||
if($0 ~ /cpu /)
|
||||
{
|
||||
# Prepend extra field headers from lparstat
|
||||
for(i=NF+4; i>=4; i--)
|
||||
for(i=NF+5; i>=5; i--)
|
||||
{
|
||||
$i = $(i-3);
|
||||
$i = $(i-4);
|
||||
}
|
||||
$1 = "CPUPool";
|
||||
$2 = "OnlineVirtualCPUs";
|
||||
$3 = "EntitledCapacity";
|
||||
$1 = "Datetime";
|
||||
$2 = "CPUPool";
|
||||
$3 = "OnlineVirtualCPUs";
|
||||
$4 = "EntitledCapacity";
|
||||
flag = 1;
|
||||
|
||||
header = $1;
|
||||
for (i = 2; i <= NF; i++) {
|
||||
header = header sprintf("%21s ", $i);
|
||||
}
|
||||
}
|
||||
for(i=1; i<=NF; i++)
|
||||
printf $1;
|
||||
for(i=2; i<=NF; i++)
|
||||
{
|
||||
printf "%17s ", $i;
|
||||
printf "%21s ", $i;
|
||||
}
|
||||
print "";
|
||||
}'
|
||||
|
@ -126,28 +165,46 @@ elif [ "$KERNEL" = "AIX" ] ; then
|
|||
echo "Cmd = [$CMD]; | $AWK $DEFINE '$FORMAT'" >> "$TEE_DEST"
|
||||
exit
|
||||
elif [ "$KERNEL" = "Darwin" ] ; then
|
||||
HEADER='CPU pctUser pctSystem pctIdle'
|
||||
HEADER='Datetime CPU pctUser pctSystem pctIdle'
|
||||
HEADERIZE="BEGIN {print \"$HEADER\"}"
|
||||
PRINTF='{printf "%-3s %9s %9s %9s \n", cpu, pctUser, pctSystem, pctIdle}'
|
||||
PRINTF='{printf "%-28s %-3s %9s %9s %9s \n", datetime, cpu, pctUser, pctSystem, pctIdle}'
|
||||
# top command here is used to get a single instance of cpu metrics
|
||||
CMD='top -l 1'
|
||||
CMD='top -l 5 -s 2'
|
||||
assertHaveCommand "$CMD"
|
||||
# FILTER here skips all the rows that doesn't match "CPU".
|
||||
# shellcheck disable=SC2016
|
||||
FILTER='($1 !~ "CPU") {next;}'
|
||||
# FORMAT here removes '%'in the end of the metrics.
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='function remove_char(string, char_to_remove) {
|
||||
sub(char_to_remove, "", string);
|
||||
return string;
|
||||
}
|
||||
{
|
||||
cpu="all";
|
||||
pctUser = remove_char($3, "%");
|
||||
pctSystem = remove_char($5, "%");
|
||||
pctIdle = remove_char($7, "%");
|
||||
}'
|
||||
FORMAT='
|
||||
function get_current_time() {
|
||||
# Use "date" to fetch the current time and store it in a variable
|
||||
command = "date +\"%m/%d/%y_%H:%M:%S_%Z\"";
|
||||
command | getline datetime;
|
||||
close(command);
|
||||
return datetime;
|
||||
}
|
||||
function remove_char(string, char_to_remove) {
|
||||
sub(char_to_remove, "", string);
|
||||
return string;
|
||||
}
|
||||
{
|
||||
datetime=get_current_time();
|
||||
cpu="all";
|
||||
pctUser = remove_char($3, "%");
|
||||
pctSystem = remove_char($5, "%");
|
||||
pctIdle = remove_char($7, "%");
|
||||
}'
|
||||
PRINTF='{
|
||||
print header;
|
||||
printf "%-28s %-3s %9s %9s %9s \n", datetime, cpu, pctUser, pctSystem, pctIdle;
|
||||
}'
|
||||
|
||||
$CMD | tee "$TEE_DEST" | $AWK "$FILTER $FORMAT $PRINTF" header="$HEADER" | column -t
|
||||
echo "Cmd = [$CMD]; | $AWK '$FILTER $FORMAT $PRINTF' header=\"$HEADER\"" >> "$TEE_DEST"
|
||||
exit
|
||||
elif [ "$KERNEL" = "OpenBSD" ] ; then
|
||||
formatted_date=$(date +"%m/%d/%y_%H:%M:%S_%Z")
|
||||
CMD='eval top -1 -b; top -b'
|
||||
assertHaveCommand "$CMD"
|
||||
# shellcheck disable=SC2016
|
||||
|
@ -159,6 +216,7 @@ elif [ "$KERNEL" = "OpenBSD" ] ; then
|
|||
else if ($1 ~ /^CPU[0-9]+$/)
|
||||
cpu=substr($1,4);
|
||||
else cpu=0;
|
||||
datetime="'"$formatted_date"'";
|
||||
pctUser=substr($3,1,length($3)-1);
|
||||
pctNice=substr($5,1,length($5)-1);
|
||||
pctSystem=substr($7,1,length($7)-1);
|
||||
|
@ -166,6 +224,7 @@ elif [ "$KERNEL" = "OpenBSD" ] ; then
|
|||
pctIdle=substr($13,1,length($13)-1);
|
||||
}'
|
||||
elif [ "$KERNEL" = "FreeBSD" ] ; then
|
||||
formatted_date=$(date +"%m/%d/%y_%H:%M:%S_%Z")
|
||||
CMD='eval top -P -d2 c; top -d2 c'
|
||||
assertHaveCommand "$CMD"
|
||||
# shellcheck disable=SC2016
|
||||
|
@ -175,6 +234,9 @@ elif [ "$KERNEL" = "FreeBSD" ] ; then
|
|||
sub(char_to_remove, "", string);
|
||||
return string;
|
||||
}
|
||||
{
|
||||
datetime="'"$formatted_date"'";
|
||||
}
|
||||
{
|
||||
if ($1 == "CPU:") {
|
||||
cpu = "all";
|
||||
|
@ -189,15 +251,6 @@ elif [ "$KERNEL" = "FreeBSD" ] ; then
|
|||
pctIdle = remove_char($(NF-1), "%");
|
||||
pctIowait = "0.0";
|
||||
}'
|
||||
elif [ "$KERNEL" = "HP-UX" ] ; then
|
||||
queryHaveCommand sar
|
||||
FOUND_SAR=$?
|
||||
if [ $FOUND_SAR -eq 0 ] ; then
|
||||
CMD='sar -M 1 1 ALL'
|
||||
fi
|
||||
FILTER='/HP-UX|^$|%/ {next}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{k=0; if(5<NF) k=1} {cpu=$(1+k); pctUser=$(2+k); pctNice="0"; pctSystem=$(3+k); pctIowait=$(4+k); pctIdle=$(5+k)}'
|
||||
fi
|
||||
|
||||
$CMD | tee "$TEE_DEST" | $AWK "$HEADERIZE $FILTER $FORMAT $PRINTF" header="$HEADER" | column -t
|
||||
|
|
|
@ -8,9 +8,9 @@
|
|||
|
||||
assertHaveCommand column
|
||||
|
||||
HEADER='CPU pctUser pctNice pctSystem pctIowait pctIdle OSName OS_version IP_address'
|
||||
HEADER='Datetime pctUser pctNice pctSystem pctIowait pctIdle OSName OS_version IP_address CPU'
|
||||
HEADERIZE="BEGIN {print \"$HEADER\"}"
|
||||
PRINTF='{printf "%-3s %9s %9s %9s %9s %9s %-35s %15s %-16s\n", cpu, pctUser, pctNice, pctSystem, pctIowait, pctIdle, OSName, OS_version, IP_address}'
|
||||
PRINTF='{printf "%-28s %9s %9s %9s %9s %9s %-35s %15s %-16s %-3s\n", datetime, pctUser, pctNice, pctSystem, pctIowait, pctIdle, OSName, OS_version, IP_address,cpu}'
|
||||
FILL_DIMENSIONS='{length(IP_address) || IP_address = "?";length(OS_version) || OS_version = "?";length(OSName) || OSName = "?"}'
|
||||
|
||||
if [ "$KERNEL" = "Linux" ] ; then
|
||||
|
@ -24,19 +24,20 @@ if [ "$KERNEL" = "Linux" ] ; then
|
|||
DEFINE="-v OSName=$(cat /etc/*release | grep '\bNAME=' | cut -d '=' -f2 | tr ' ' '_' | cut -d\" -f2) -v OS_version=$(cat /etc/*release | grep -E '\b(VERSION|BUILD)_ID=' | cut -d '=' -f2 | cut -d\" -f2) -v IP_address=$(ip -4 route show default | awk '{print $9}')"
|
||||
fi
|
||||
if [ $FOUND_SAR -eq 0 ] ; then
|
||||
CMD='sar -P ALL 1 1'
|
||||
CMD='sar -P ALL 2 5'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{cpu=$(NF-6); pctUser=$(NF-5); pctNice=$(NF-4); pctSystem=$(NF-3); pctIowait=$(NF-2); pctIdle=$NF;OSName=OSName;OS_version=OS_version;IP_address=IP_address;}'
|
||||
FORMAT='{datetime = strftime("%m/%d/%y_%H:%M:%S_%Z"); cpu=$(NF-6); pctUser=$(NF-5); pctNice=$(NF-4); pctSystem=$(NF-3); pctIowait=$(NF-2); pctIdle=$NF;OSName=OSName;OS_version=OS_version;IP_address=IP_address;}'
|
||||
elif [ $FOUND_MPSTAT -eq 0 ] ; then
|
||||
CMD='mpstat -P ALL 1 1'
|
||||
CMD='mpstat -P ALL 2 5'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{cpu=$(NFIELDS-10); pctUser=$(NFIELDS-9); pctNice=$(NFIELDS-8); pctSystem=$(NFIELDS-7); pctIowait=$(NFIELDS-6); pctIdle=$NF;OSName=OSName;OS_version=OS_version;IP_address=IP_address;}'
|
||||
FORMAT='{datetime = strftime("%m/%d/%y_%H:%M:%S_%Z"); cpu=$(NFIELDS-10); pctUser=$(NFIELDS-9); pctNice=$(NFIELDS-8); pctSystem=$(NFIELDS-7); pctIowait=$(NFIELDS-6); pctIdle=$NF;OSName=OSName;OS_version=OS_version;IP_address=IP_address;}'
|
||||
else
|
||||
failLackMultipleCommands sar mpstat
|
||||
fi
|
||||
# shellcheck disable=SC2016
|
||||
FILTER='($0 ~ /CPU/) { if($(NF-1) ~ /gnice/){ NFIELDS=NF; } else {NFIELDS=NF+1;} next} /Average|Linux|^$|%/ {next}'
|
||||
elif [ "$KERNEL" = "SunOS" ] ; then
|
||||
formatted_date=$(date +"%m/%d/%y_%H:%M:%S_%Z")
|
||||
if [ "$SOLARIS_8" = "true" ] || [ "$SOLARIS_9" = "true" ] ; then
|
||||
CMD='eval mpstat -a -p 1 2 | tail -1 | sed "s/^[ ]*0/all/"; mpstat -p 1 2 | tail -r'
|
||||
else
|
||||
|
@ -47,7 +48,7 @@ elif [ "$KERNEL" = "SunOS" ] ; then
|
|||
# shellcheck disable=SC2016
|
||||
FILTER='($1=="CPU") {exit 1}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{cpu=$1; pctUser=$(NF-4); pctNice="0"; pctSystem=$(NF-3); pctIowait=$(NF-2); pctIdle=$(NF-1);OSName=OSName;OS_version=OS_version;IP_address=IP_address;}'
|
||||
FORMAT='{datetime="'"$formatted_date"'"; cpu=$1; pctUser=$(NF-4); pctNice="0"; pctSystem=$(NF-3); pctIowait=$(NF-2); pctIdle=$(NF-1);OSName=OSName;OS_version=OS_version;IP_address=IP_address;}'
|
||||
elif [ "$KERNEL" = "AIX" ] ; then
|
||||
queryHaveCommand mpstat
|
||||
queryHaveCommand lparstat
|
||||
|
@ -87,52 +88,66 @@ elif [ "$KERNEL" = "AIX" ] ; then
|
|||
DEFINE_LPARSTAT_FIELDS="-v CPUPool=$CPUPool -v OnlineVirtualCPUs=$OnlineVirtualCPUs -v EntitledCapacity=$EntitledCapacity"
|
||||
|
||||
# Get cpu stats using mpstat command and manipulate the output for adding extra fields
|
||||
CMD='mpstat -a 1 1'
|
||||
CMD='mpstat -a 2 5'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='BEGIN {flag = 0}
|
||||
|
||||
FORMAT='
|
||||
function get_current_time() {
|
||||
# Use "date" to fetch the current time and store it in a variable
|
||||
command = "date +\"%m/%d/%y_%H:%M:%S_%Z\"";
|
||||
command | getline datetime;
|
||||
close(command);
|
||||
return datetime;
|
||||
}
|
||||
$1 ~ /^-+$/ { next }
|
||||
BEGIN {flag = 0}
|
||||
{
|
||||
if($0 ~ /System configuration|^$/) {next}
|
||||
if($0 ~ /cpu / && flag == 1) {next}
|
||||
if(flag == 1)
|
||||
{
|
||||
for(i=NF+7; i>=7; i--)
|
||||
for(i=NF+8; i>=8; i--)
|
||||
{
|
||||
$i = $(i-6);
|
||||
$i = $(i-7);
|
||||
}
|
||||
# Prepend OSName, OS_version, IP_address values
|
||||
$1 = OSName;
|
||||
$2 = OSVersion/1000;
|
||||
$3 = IP_address;
|
||||
# Prepend Datetime, OSName, OS_version, IP_address values
|
||||
$1 = get_current_time();
|
||||
$2 = OSName;
|
||||
$3 = OSVersion/1000;
|
||||
$4 = IP_address;
|
||||
# Prepend lparstat field values
|
||||
if($0 ~ /ALL/)
|
||||
{
|
||||
$4 = CPUPool;
|
||||
$5 = OnlineVirtualCPUs;
|
||||
$6 = EntitledCapacity;
|
||||
$5 = CPUPool;
|
||||
$6 = OnlineVirtualCPUs;
|
||||
$7 = EntitledCapacity;
|
||||
}
|
||||
else
|
||||
{
|
||||
$4 = "-";
|
||||
$5 = "-";
|
||||
$6 = "-";
|
||||
$7 = "-";
|
||||
}
|
||||
}
|
||||
if($0 ~ /cpu /)
|
||||
{
|
||||
for(i=NF+7; i>=7; i--)
|
||||
for(i=NF+8; i>=8; i--)
|
||||
{
|
||||
$i = $(i-6);
|
||||
$i = $(i-7);
|
||||
}
|
||||
# Prepend OSName, OS_version, IP_address headers
|
||||
$1 = "OSName";
|
||||
$2 = "OS_version";
|
||||
$3 = "IP_address";
|
||||
# Prepend Datetime, OSName, OS_version, IP_address headers
|
||||
$1 = "Datetime";
|
||||
$2 = "OSName";
|
||||
$3 = "OS_version";
|
||||
$4 = "IP_address";
|
||||
# Prepend lparstat field headers
|
||||
$4 = "CPUPool";
|
||||
$5 = "OnlineVirtualCPUs";
|
||||
$6 = "EntitledCapacity";
|
||||
$5 = "CPUPool";
|
||||
$6 = "OnlineVirtualCPUs";
|
||||
$7 = "EntitledCapacity";
|
||||
flag = 1;
|
||||
}
|
||||
for(i=1; i<=NF; i++)
|
||||
printf $1;
|
||||
for(i=2; i<=NF; i++)
|
||||
{
|
||||
printf "%17s ", $i;
|
||||
}
|
||||
|
@ -143,11 +158,11 @@ elif [ "$KERNEL" = "AIX" ] ; then
|
|||
echo "Cmd = [$CMD]; | $AWK $DEFINE $DEFINE_LPARSTAT_FIELDS '$FORMAT $FILL_DIMENSIONS'" >>"$TEE_DEST"
|
||||
exit
|
||||
elif [ "$KERNEL" = "Darwin" ] ; then
|
||||
HEADER='CPU pctUser pctSystem pctIdle OSName OS_version IP_address'
|
||||
HEADER='Datetime pctUser pctSystem pctIdle OSName OS_version IP_address CPU'
|
||||
HEADERIZE="BEGIN {print \"$HEADER\"}"
|
||||
PRINTF='{printf "%-3s %9s %9s %9s %-35s %15s %-16s\n", cpu, pctUser, pctSystem, pctIdle, OSName, OS_version, IP_address}'
|
||||
PRINTF='{printf "%-28s %9s %9s %9s %-35s %15s %-16s %-3s\n", datetime, pctUser, pctSystem, pctIdle, OSName, OS_version, IP_address, cpu}'
|
||||
# top command here is used to get a single instance of cpu metrics
|
||||
CMD='top -l 1'
|
||||
CMD='top -l 5 -s 2'
|
||||
assertHaveCommand "$CMD"
|
||||
# FILTER here skips all the rows that doesn't match "CPU".
|
||||
# shellcheck disable=SC2016
|
||||
|
@ -156,20 +171,30 @@ elif [ "$KERNEL" = "Darwin" ] ; then
|
|||
DEFINE="-v OSName=$(uname -s) -v OS_version=$(uname -r) -v IP_address=$(ifconfig -a | grep 'inet ' | grep -v 127.0.0.1 | cut -d\ -f2 | head -n 1)"
|
||||
# FORMAT here removes '%'in the end of the metrics.
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='function remove_char(string, char_to_remove) {
|
||||
sub(char_to_remove, "", string);
|
||||
return string;
|
||||
}
|
||||
{
|
||||
cpu="all";
|
||||
pctUser = remove_char($3, "%");
|
||||
pctSystem = remove_char($5, "%");
|
||||
pctIdle = remove_char($7, "%");
|
||||
OSName=OSName;
|
||||
OS_version=OS_version;
|
||||
IP_address=IP_address;
|
||||
}'
|
||||
FORMAT='
|
||||
function get_current_time() {
|
||||
# Use "date" to fetch the current time and store it in a variable
|
||||
command = "date +\"%m/%d/%y_%H:%M:%S_%Z\"";
|
||||
command | getline datetime;
|
||||
close(command);
|
||||
return datetime;
|
||||
}
|
||||
function remove_char(string, char_to_remove) {
|
||||
sub(char_to_remove, "", string);
|
||||
return string;
|
||||
}
|
||||
{
|
||||
datetime=get_current_time();
|
||||
cpu="all";
|
||||
pctUser = remove_char($3, "%");
|
||||
pctSystem = remove_char($5, "%");
|
||||
pctIdle = remove_char($7, "%");
|
||||
OSName=OSName;
|
||||
OS_version=OS_version;
|
||||
IP_address=IP_address;
|
||||
}'
|
||||
elif [ "$KERNEL" = "OpenBSD" ] ; then
|
||||
formatted_date=$(date +"%m/%d/%y_%H:%M:%S_%Z")
|
||||
CMD='eval top -1 -b; top -b'
|
||||
assertHaveCommand "$CMD"
|
||||
# shellcheck disable=SC2016
|
||||
|
@ -183,6 +208,7 @@ elif [ "$KERNEL" = "OpenBSD" ] ; then
|
|||
else if ($1 ~ /^CPU[0-9]+$/)
|
||||
cpu=substr($1,4);
|
||||
else cpu=0;
|
||||
datetime="'"$formatted_date"'";
|
||||
pctUser=substr($3,1,length($3)-1);
|
||||
pctNice=substr($5,1,length($5)-1);
|
||||
pctSystem=substr($7,1,length($7)-1);
|
||||
|
@ -190,6 +216,7 @@ elif [ "$KERNEL" = "OpenBSD" ] ; then
|
|||
pctIdle=substr($13,1,length($13)-1);
|
||||
}'
|
||||
elif [ "$KERNEL" = "FreeBSD" ] ; then
|
||||
formatted_date=$(date +"%m/%d/%y_%H:%M:%S_%Z")
|
||||
CMD='eval top -P -d2 c; top -d2 c'
|
||||
assertHaveCommand "$CMD"
|
||||
# shellcheck disable=SC2016
|
||||
|
@ -201,6 +228,9 @@ elif [ "$KERNEL" = "FreeBSD" ] ; then
|
|||
sub(char_to_remove, "", string);
|
||||
return string;
|
||||
}
|
||||
{
|
||||
datetime="'"$formatted_date"'";
|
||||
}
|
||||
{
|
||||
if ($1 == "CPU:") {
|
||||
cpu = "all";
|
||||
|
@ -218,16 +248,6 @@ elif [ "$KERNEL" = "FreeBSD" ] ; then
|
|||
OS_version=OS_version;
|
||||
IP_address=IP_address;
|
||||
}'
|
||||
elif [ "$KERNEL" = "HP-UX" ] ; then
|
||||
queryHaveCommand sar
|
||||
FOUND_SAR=$?
|
||||
DEFINE="-v OSName=$(uname -s) -v OS_version=$(uname -r) -v IP_address=$(ifconfig -a | grep 'inet ' | grep -v 127.0.0.1 | cut -d\ -f2 | head -n 1)"
|
||||
if [ $FOUND_SAR -eq 0 ] ; then
|
||||
CMD='sar -M 1 1 ALL'
|
||||
fi
|
||||
FILTER='/HP-UX|^$|%/ {next}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{k=0; if(5<NF) k=1} {cpu=$(1+k); pctUser=$(2+k); pctNice="0"; pctSystem=$(3+k); pctIowait=$(4+k); pctIdle=$(5+k); OSName=OSName;OS_version=OS_version;IP_address=IP_address;}'
|
||||
fi
|
||||
# shellcheck disable=SC2086
|
||||
$CMD | tee "$TEE_DEST" | $AWK $DEFINE "$HEADERIZE $FILTER $FORMAT $FILL_DIMENSIONS $PRINTF" header="$HEADER" | column -t
|
||||
|
|
|
@ -5,22 +5,35 @@
|
|||
# shellcheck disable=SC1091
|
||||
. "$(dirname "$0")"/common.sh
|
||||
|
||||
HEADER='USERNAME FROM LATEST'
|
||||
HEADER='USERNAME FROM LATEST DURATION'
|
||||
HEADERIZE="BEGIN {print \"$HEADER\"}"
|
||||
PRINTF='{printf "%-30s %-30.30s %-s\n", username, from, latest}'
|
||||
PRINTF='{printf "%-30s %-30.30s %-30.30s %-s\n", username, from, latest, duration}'
|
||||
|
||||
if [ "$KERNEL" = "Linux" ] ; then
|
||||
CMD='last -iw'
|
||||
# shellcheck disable=SC2016
|
||||
FILTER='{if ($0 == "") exit; if ($1 ~ /reboot|shutdown/ || $1 in users) next; users[$1]=1}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{username = $1; from = (NF==10) ? $3 : "<console>"; latest = $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3)}'
|
||||
# Extracts duration values from the 10th column of the `last` command output.
|
||||
# If the session is `still running` or `still logged in`, "N/A" is set as the default value.
|
||||
# This approach is applied to all supported kernels in the script.
|
||||
FORMAT='{
|
||||
username = $1;
|
||||
from = (NF>=10) ? $3 : "<console>";
|
||||
latest = (NF >= 10 && ($7 == "gone" || $8 == "gone" || $9 == "gone")) ? $(NF-7) " " $(NF-6) " " $(NF-5) " " $(NF-4) : $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3);
|
||||
duration = (NF >= 10 && $10 != "still" && $10 != "logged" && $10 != "running" && $10 != "in" && $10 != "" && $10 != "gone" && $10 != "no" && $10 != "logout") ? $10 : "N/A";
|
||||
}'
|
||||
elif [ "$KERNEL" = "SunOS" ] ; then
|
||||
CMD='last -n 999'
|
||||
# shellcheck disable=SC2016
|
||||
FILTER='{if ($0 == "") exit; if ($1 ~ /reboot|shutdown/ || $1 in users) next; users[$1]=1}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{username = $1; from = (NF==10) ? $3 : "<console>"; latest = $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3)}'
|
||||
FORMAT='{
|
||||
username = $1;
|
||||
from = (NF>=10) ? $3 : "<console>";
|
||||
latest = (NF >= 10 && ($7 == "gone" || $8 == "gone" || $9 == "gone")) ? $(NF-7) " " $(NF-6) " " $(NF-5) " " $(NF-4) : $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3);
|
||||
duration = (NF >= 10 && $10 != "still" && $10 != "logged" && $10 != "running" && $10 != "in" && $10 != "" && $10 != "gone" && $10 != "no" && $10 != "logout") ? $10 : "N/A";
|
||||
}'
|
||||
elif [ "$KERNEL" = "AIX" ] ; then
|
||||
failUnsupportedScript
|
||||
elif [ "$KERNEL" = "Darwin" ] ; then
|
||||
|
@ -28,13 +41,23 @@ elif [ "$KERNEL" = "Darwin" ] ; then
|
|||
# shellcheck disable=SC2016
|
||||
FILTER='{if ($0 == "") exit; if ($1 ~ /reboot|shutdown/ || $1 in users) next; users[$1]=1}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{username = $1; from = ($0 !~ / /) ? $3 : "<console>"; latest = $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3)}'
|
||||
FORMAT='{
|
||||
username = $1;
|
||||
from = ($0 !~ / /) ? $3 : "<console>";
|
||||
latest = (NF >= 10 && ($7 == "gone" || $8 == "gone" || $9 == "gone")) ? $(NF-7) " " $(NF-6) " " $(NF-5) " " $(NF-4) : $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3);
|
||||
duration = (NF >= 10 && $10 != "still" && $10 != "logged" && $10 != "running" && $10 != "in" && $10 != "" && $10 != "gone" && $10 != "no" && $10 != "logout") ? $10 : "N/A";
|
||||
}'
|
||||
elif [ "$KERNEL" = "OpenBSD" ] ; then
|
||||
CMD='last'
|
||||
# shellcheck disable=SC2016
|
||||
FILTER='{if ($0 == "") exit; if ($1 ~ /reboot|shutdown/ || $1 in users) next; users[$1]=1}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{username = $1; from = (NF==10) ? $3 : "<console>"; latest = $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3)}'
|
||||
FORMAT='{
|
||||
username = $1;
|
||||
from = (NF>=10) ? $3 : "<console>";
|
||||
latest = (NF >= 10 && ($7 == "gone" || $8 == "gone" || $9 == "gone")) ? $(NF-7) " " $(NF-6) " " $(NF-5) " " $(NF-4) : $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3);
|
||||
duration = (NF >= 10 && $10 != "still" && $10 != "logged" && $10 != "running" && $10 != "in" && $10 != "" && $10 != "gone" && $10 != "no" && $10 != "logout") ? $10 : "N/A";
|
||||
}'
|
||||
elif [ "$KERNEL" = "HP-UX" ] ; then
|
||||
CMD='lastb -Rx'
|
||||
# shellcheck disable=SC2016
|
||||
|
@ -42,9 +65,16 @@ elif [ "$KERNEL" = "HP-UX" ] ; then
|
|||
# shellcheck disable=SC2016
|
||||
FILTER='{if ($1 == "BTMPS_FILE") next; if (NF==0) next; if (NF<=6) next;}'
|
||||
elif [ "$KERNEL" = "FreeBSD" ] ; then
|
||||
CMD='lastlogin'
|
||||
CMD='last -w'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{username = $1; from = (NF==8) ? $3 : "<console>"; latest=$(NF-4) " " $(NF-3) " " $(NF-2) " " $(NF-1) " " $NF}'
|
||||
FILTER='{if ($0 == "") exit; if ($1 ~ /reboot|shutdown/ || $1 in users) next; users[$1]=1}'
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{
|
||||
username = $1;
|
||||
from = (NF>=10) ? $3 : "<console>";
|
||||
latest = (NF >= 10 && ($7 == "gone" || $8 == "gone" || $9 == "gone")) ? $(NF-7) " " $(NF-6) " " $(NF-5) " " $(NF-4) : $(NF-6) " " $(NF-5) " " $(NF-4) " " $(NF-3);
|
||||
duration = (NF >= 10 && $10 != "still" && $10 != "logged" && $10 != "running" && $10 != "in" && $10 != "" && $10 != "gone" && $10 != "no" && $10 != "logout") ? $10 : "N/A";
|
||||
}'
|
||||
fi
|
||||
|
||||
assertHaveCommand $CMD
|
||||
|
|
|
@ -46,11 +46,11 @@ if [ "$KERNEL" = "Linux" ] ; then
|
|||
fi
|
||||
|
||||
# Below condition is added to handle the case of Ubuntu OS
|
||||
if [ -e $OS_FILE ] && (awk -F'=' '/ID=/ {print $2}' $OS_FILE | grep -q ubuntu);
|
||||
if [ -e "$OS_FILE" ] && (awk -F'=' '/ID=/ {print $2}' "$OS_FILE" | grep -Eq 'rocky|ubuntu|almalinux|ol');
|
||||
then
|
||||
# shellcheck disable=SC2016
|
||||
OS_RELEASE=$($AWK -F= '/VERSION_ID=/ {print $2}' $OS_FILE)
|
||||
if [ "$OS_RELEASE" = "\"18.04\"" ] || [ "$OS_RELEASE" = "\"20.04\"" ] || [ "$OS_RELEASE" = "\"22.04\"" ] ; then # Ubuntu 18.04, 20.04 and 22.04
|
||||
OS_RELEASE=$(awk -F= '/^ID=/ {gsub(/"/, "", $2); id=$2} /^VERSION_ID=/ {gsub(/"/, "", $2); ver=$2} END {print id ":" ver}' "$OS_FILE")
|
||||
if [ "$OS_RELEASE" = "ubuntu:18.04" ] || [ "$OS_RELEASE" = "ubuntu:20.04" ] || [ "$OS_RELEASE" = "ubuntu:22.04" ] || [ "$OS_RELEASE" = "rocky:9.5" ] || [ "$OS_RELEASE" = "almalinux:9.5" ] || [ "$OS_RELEASE" = "ol:8.9" ] ; then # Ubuntu 18.04, 20.04 and 22.04 # Rocky or AlmaLinux 9.5 # Oracle Linux 8.9
|
||||
# shellcheck disable=SC2016
|
||||
FORMAT='{
|
||||
if (NR%10==2){
|
||||
|
|
25
bin/time.sh
25
bin/time.sh
|
@ -62,8 +62,29 @@ CMD1='date'
|
|||
assertHaveCommand $CMD1
|
||||
assertHaveCommand "$CMD2"
|
||||
|
||||
$CMD1 | tee -a "$TEE_DEST"
|
||||
echo "Cmd1 = [$CMD1]" >> "$TEE_DEST"
|
||||
$CMD1 | tee -a "$TEE_DEST"
|
||||
|
||||
$CMD2 | tee -a "$TEE_DEST"
|
||||
echo "Cmd2 = [$CMD2]" >> "$TEE_DEST"
|
||||
if [ "$KERNEL" = "Darwin" ] && [ $FOUND_SNTP -eq 0 ] ; then
|
||||
TMP_ERROR_FILTER_FILE=$SPLUNK_HOME/var/run/splunk/unix_time_error_tmpfile
|
||||
OUTPUT=$($CMD2 2>$TMP_ERROR_FILTER_FILE)
|
||||
|
||||
if grep -q "Timeout" < $TMP_ERROR_FILTER_FILE; then
|
||||
LAST_LINE=$(echo "$OUTPUT" | tail -n 1)
|
||||
if [[ "$LAST_LINE" == *"$SERVER"* ]]; then
|
||||
echo "$LAST_LINE" | tee -a "$TEE_DEST"
|
||||
fi
|
||||
cat $TMP_ERROR_FILTER_FILE >> $TEE_DEST
|
||||
echo "$OUTPUT" >> "$TEE_DEST"
|
||||
rm $TMP_ERROR_FILTER_FILE 2>/dev/null
|
||||
elif grep -vq "Timeout" < $TMP_ERROR_FILTER_FILE; then
|
||||
cat $TMP_ERROR_FILTER_FILE >&2
|
||||
echo "$OUTPUT" >> "$TEE_DEST"
|
||||
rm $TMP_ERROR_FILTER_FILE 2>/dev/null
|
||||
else
|
||||
echo "$OUTPUT" | tee -a "$TEE_DEST"
|
||||
fi
|
||||
else
|
||||
$CMD2 | tee -a "$TEE_DEST"
|
||||
fi
|
||||
|
|
|
@ -5,68 +5,62 @@
|
|||
# shellcheck disable=SC1091
|
||||
. "$(dirname "$0")"/common.sh
|
||||
|
||||
PRINTF='END {printf "%s %s %s %s %s %s %s %s %s\n", DATE, MACH_HW_NAME, MACH_ARCH_NAME, KERN_REL, OS_NAME, KERN_VER, OS_REL, OS_VER, DISTRO}'
|
||||
PRINTF='END {printf "%s %s %s %s %s %s %s %s %s\n", DATE, MACH_HW_NAME, MACH_ARCH_NAME, OS_REL, OS_NAME, OS_VER, KERNEL_NAME, KERNEL_VERSION, KERNEL_RELEASE}'
|
||||
|
||||
|
||||
if [ "$KERNEL" = "Linux" ] ; then
|
||||
assertHaveCommand date
|
||||
assertHaveCommand uname
|
||||
[ -f /etc/os-release ] && . /etc/os-release
|
||||
machine_arch=$(uname -p)
|
||||
os_release=$(uname -r)
|
||||
os_version=$(uname -v)
|
||||
distro_name=Linux
|
||||
[ -n "$NAME" ] && distro_name=$NAME
|
||||
[ -n "$VERSION_ID" ] && os_release=$VERSION_ID
|
||||
[ -n "$VERSION_ID" ] && os_version=$VERSION_ID
|
||||
[ -r /etc/debian_version ] && grep -Eq "^[0-9.]+$" /etc/debian_version && os_release=$(cat /etc/debian_version)
|
||||
[ "$BUILD_ID" = "rolling" ] && os_release=rolling
|
||||
[ "$BUILD_ID" = "rolling" ] && os_version=rolling
|
||||
which dpkg > /dev/null 2>&1 && machine_arch=$(dpkg --print-architecture)
|
||||
[ "$NAME" = "Arch Linux" -o "$NAME" = "Arch Linux ARM" ] && machine_arch=$(uname -m | sed -r "s/(armv7l|aarch64)/arm64/;s/x86_64/amd64/")
|
||||
|
||||
CMD="eval date ; echo $distro_name ; eval uname -m ; eval uname -r ; eval uname -s ; eval uname -v ; echo $machine_arch; echo $os_release; echo $os_version"
|
||||
elif [ "$KERNEL" = "Darwin" ] ; then
|
||||
assertHaveCommand date
|
||||
assertHaveCommand uname
|
||||
assertHaveCommand sw_vers
|
||||
os_release=$(sw_vers --productVersion)
|
||||
CMD="eval date ; echo MacOS ; eval uname -m ; eval uname -r ; eval uname -s ; eval uname -v ; eval uname -p; echo $os_release; echo $os_release"
|
||||
VERSION=$(grep "^VERSION=" /etc/*-release | cut -d= -f2 | sed 's/^["]*//;s/["]*$//' | paste -sd " " -)
|
||||
NAME=$(grep "^NAME=" /etc/*-release | cut -d= -f2 | sed 's/^["]*//;s/["]*$//' | paste -sd " " -)
|
||||
VERSION_ID=$(grep "^VERSION_ID=" /etc/*-release | cut -d= -f2 | sed 's/^["]*//;s/["]*$//' | paste -sd " " -)
|
||||
MACHINE_ARCH=$(uname -p)
|
||||
which dpkg > /dev/null 2>&1 && MACHINE_ARCH=$(dpkg --print-architecture)
|
||||
which pacman > /dev/null 2>&1 && MACHINE_ARCH=$(uname -m | sed -r "s/(armv7l|aarch64)/arm64/;s/x86_64/amd64/") && VERSION=rolling && VERSION_ID=rolling
|
||||
CMD="eval date ; eval uname -m ; echo \"$VERSION\" ; echo \"$NAME\" ; echo \"$VERSION_ID\" ; echo \"$MACHINE_ARCH\" ; eval uname -s ; eval uname -v ; eval uname -r"
|
||||
elif [ "$KERNEL" = "SunOS" ] || [ "$KERNEL" = "FreeBSD" ] || [ "$KERNEL" = "OpenBSD" ] ; then
|
||||
assertHaveCommand date
|
||||
assertHaveCommand uname
|
||||
CMD='eval date ; echo $KERNEL ; eval uname -m ; eval uname -r ; eval uname -s ; eval uname -v ; eval uname -p;'
|
||||
CMD='eval date ; eval uname -m ; eval uname -r ; echo $KERNEL ; eval uname -r; eval uname -p ; eval uname -s ; eval uname -v ; eval uname -r;'
|
||||
elif [ "$KERNEL" = "Darwin" ] ; then
|
||||
# Darwin-macos uses sw_vers for os version, name and release switch.
|
||||
assertHaveCommand date
|
||||
assertHaveCommand uname
|
||||
VERSION=$(sw_vers -BuildVersion)
|
||||
NAME=$(sw_vers -productName)
|
||||
VERSION_ID=$(sw_vers -ProductVersion)
|
||||
CMD="eval date ; eval uname -m ; echo \"$VERSION_ID ($VERSION)\" ; echo \"$NAME\" ; echo \"$VERSION_ID\" ; eval uname -p ; eval uname -s ; eval uname -v ; eval uname -r"
|
||||
elif [ "$KERNEL" = "HP-UX" ] ; then
|
||||
# HP-UX lacks -p switch.
|
||||
assertHaveCommand date
|
||||
assertHaveCommand uname
|
||||
CMD='eval date ; echo HP-UX ; eval uname -m ; eval uname -r ; eval uname -s ; eval uname -v'
|
||||
CMD='eval date ; eval uname -m ; eval uname -r ; eval uname -s ; eval uname -v'
|
||||
elif [ "$KERNEL" = "AIX" ] ; then
|
||||
# AIX uses oslevel for version and release switch.
|
||||
assertHaveCommand date
|
||||
assertHaveCommand uname
|
||||
CMD='eval date ; echo AIX ; eval uname -m ; eval oslevel -r ; eval uname -s ; eval oslevel -s'
|
||||
CMD='eval date ; eval uname -m ; eval oslevel -r ; eval uname -s ; eval oslevel ; eval uname -m ; eval uname -s ; eval uname -v; eval uname -r'
|
||||
fi
|
||||
|
||||
# Get the date.
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_0='NR==1 {DATE=$0}'
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_1='NR==2 {DISTRO="distro_name=\"" $0 "\""}'
|
||||
PARSE_1='NR==2 {MACH_HW_NAME="machine_hardware_name=\"" $0 "\""}'
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_2='NR==3 {MACH_HW_NAME="machine_hardware_name=\"" $0 "\""}'
|
||||
PARSE_2='NR==3 {OS_REL="os_release=\"" $0 "\""}'
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_3='NR==4 {OS_REL="os_release=\"" $0 "\"";KERN_REL="kernel_release=\"" $0 "\""}'
|
||||
PARSE_3='NR==4 {OS_NAME="os_name=\"" $0 "\""}'
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_4='NR==5 {OS_NAME="os_name=\"" $0 "\""}'
|
||||
PARSE_4='NR==5 {OS_VER="os_version=\"" $0 "\""}'
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_5='NR==6 {OS_VER="os_version=\"" $0 "\"";KERN_VER="kernel_version=\"" $0 "\""}'
|
||||
PARSE_5='NR==6 {MACH_ARCH_NAME="machine_architecture_name=\"" $0 "\""}'
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_6='NR==7 {MACH_ARCH_NAME="machine_architecture_name=\"" $0 "\""}'
|
||||
PARSE_6='NR==7 {KERNEL_NAME="kernel_name=\"" $0 "\""}'
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_7='NR==8 {OS_REL="os_release=\"" $0 "\""}'
|
||||
PARSE_7='NR==8 {KERNEL_VERSION="kernel_version=\"" $0 "\""}'
|
||||
# shellcheck disable=SC2016
|
||||
PARSE_8='NR==9 {OS_VER="os_version=\"" $0 "\""}'
|
||||
PARSE_8='NR==9 {KERNEL_RELEASE="kernel_release=\"" $0 "\""}'
|
||||
|
||||
MASSAGE="$PARSE_0 $PARSE_1 $PARSE_2 $PARSE_3 $PARSE_4 $PARSE_5 $PARSE_6 $PARSE_7 $PARSE_8"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue