mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 21:19:59 +00:00
Fix CPU_ARCH collection for Linux
This commit is contained in:
@@ -774,6 +774,7 @@ setup_commands () {
|
|||||||
CMD_SWAPCTL="$( _which swapctl 2>/dev/null )"
|
CMD_SWAPCTL="$( _which swapctl 2>/dev/null )"
|
||||||
CMD_LSB_RELEASE="$( _which lsb_release 2>/dev/null )"
|
CMD_LSB_RELEASE="$( _which lsb_release 2>/dev/null )"
|
||||||
CMD_ETHTOOL="$( _which ethtool 2>/dev/null )"
|
CMD_ETHTOOL="$( _which ethtool 2>/dev/null )"
|
||||||
|
CMD_GETCONF="$( _which getconf 2>/dev/null )"
|
||||||
}
|
}
|
||||||
|
|
||||||
collect_system_data () { local PTFUNCNAME=collect_system_data;
|
collect_system_data () { local PTFUNCNAME=collect_system_data;
|
||||||
@@ -956,15 +957,15 @@ cpu_and_os_arch () { local PTFUNCNAME=cpu_and_os_arch;
|
|||||||
local CPU_ARCH='32-bit'
|
local CPU_ARCH='32-bit'
|
||||||
local OS_ARCH='32-bit'
|
local OS_ARCH='32-bit'
|
||||||
if [ "${platform}" = "Linux" ]; then
|
if [ "${platform}" = "Linux" ]; then
|
||||||
if [ "$(grep -q ' lm ' /proc/cpuinfo)" ]; then
|
if grep -q ' lm ' /proc/cpuinfo; then
|
||||||
CPU_ARCH='64-bit'
|
CPU_ARCH='64-bit'
|
||||||
fi
|
fi
|
||||||
elif [ "${platform}" = "FreeBSD" ] || [ "${platform}" = "NetBSD" ]; then
|
elif [ "${platform}" = "FreeBSD" ] || [ "${platform}" = "NetBSD" ]; then
|
||||||
if $CMD_SYSCTL hw.machine_arch | grep -v 'i[36]86' >/dev/null; then
|
if $CMD_SYSCTL "hw.machine_arch" | grep -v 'i[36]86' >/dev/null; then
|
||||||
CPU_ARCH='64-bit'
|
CPU_ARCH='64-bit'
|
||||||
fi
|
fi
|
||||||
elif [ "${platform}" = "OpenBSD" ]; then
|
elif [ "${platform}" = "OpenBSD" ]; then
|
||||||
if $CMD_SYSCTL hw.machine | grep -v 'i[36]86' >/dev/null; then
|
if $CMD_SYSCTL "hw.machine" | grep -v 'i[36]86' >/dev/null; then
|
||||||
CPU_ARCH='64-bit'
|
CPU_ARCH='64-bit'
|
||||||
fi
|
fi
|
||||||
elif [ "${platform}" = "SunOS" ]; then
|
elif [ "${platform}" = "SunOS" ]; then
|
||||||
@@ -973,7 +974,11 @@ cpu_and_os_arch () { local PTFUNCNAME=cpu_and_os_arch;
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -z "$CMD_FILE" ]; then
|
if [ -z "$CMD_FILE" ]; then
|
||||||
|
if [ "$CMD_GETCONF" ] && $CMD_GETCONF LONG_BIT 1>/dev/null 2>&1; then
|
||||||
|
OS_ARCH="$($CMD_GETCONF LONG_BIT 2>/dev/null)-bit"
|
||||||
|
else
|
||||||
OS_ARCH='N/A'
|
OS_ARCH='N/A'
|
||||||
|
fi
|
||||||
elif $CMD_FILE /bin/sh | grep '64-bit' >/dev/null; then
|
elif $CMD_FILE /bin/sh | grep '64-bit' >/dev/null; then
|
||||||
OS_ARCH='64-bit'
|
OS_ARCH='64-bit'
|
||||||
fi
|
fi
|
||||||
|
@@ -55,6 +55,7 @@ setup_commands () {
|
|||||||
CMD_SWAPCTL="$( _which swapctl 2>/dev/null )"
|
CMD_SWAPCTL="$( _which swapctl 2>/dev/null )"
|
||||||
CMD_LSB_RELEASE="$( _which lsb_release 2>/dev/null )"
|
CMD_LSB_RELEASE="$( _which lsb_release 2>/dev/null )"
|
||||||
CMD_ETHTOOL="$( _which ethtool 2>/dev/null )"
|
CMD_ETHTOOL="$( _which ethtool 2>/dev/null )"
|
||||||
|
CMD_GETCONF="$( _which getconf 2>/dev/null )"
|
||||||
}
|
}
|
||||||
|
|
||||||
collect_system_data () { local PTFUNCNAME=collect_system_data;
|
collect_system_data () { local PTFUNCNAME=collect_system_data;
|
||||||
@@ -238,7 +239,7 @@ find_release_and_kernel () { local PTFUNCNAME=find_release_and_kernel;
|
|||||||
|| [ "${platform}" = "NetBSD" ] \
|
|| [ "${platform}" = "NetBSD" ] \
|
||||||
|| [ "${platform}" = "OpenBSD" ]; then
|
|| [ "${platform}" = "OpenBSD" ]; then
|
||||||
release="$(uname -r)"
|
release="$(uname -r)"
|
||||||
kernel="$($CMD_SYSCTL -n kern.osrevision)"
|
kernel="$($CMD_SYSCTL -n "kern.osrevision")"
|
||||||
elif [ "${platform}" = "SunOS" ]; then
|
elif [ "${platform}" = "SunOS" ]; then
|
||||||
release="$(head -n1 /etc/release)"
|
release="$(head -n1 /etc/release)"
|
||||||
if [ -z "${release}" ]; then
|
if [ -z "${release}" ]; then
|
||||||
@@ -256,15 +257,15 @@ cpu_and_os_arch () { local PTFUNCNAME=cpu_and_os_arch;
|
|||||||
local CPU_ARCH='32-bit'
|
local CPU_ARCH='32-bit'
|
||||||
local OS_ARCH='32-bit'
|
local OS_ARCH='32-bit'
|
||||||
if [ "${platform}" = "Linux" ]; then
|
if [ "${platform}" = "Linux" ]; then
|
||||||
if [ "$(grep -q ' lm ' /proc/cpuinfo)" ]; then
|
if grep -q ' lm ' /proc/cpuinfo; then
|
||||||
CPU_ARCH='64-bit'
|
CPU_ARCH='64-bit'
|
||||||
fi
|
fi
|
||||||
elif [ "${platform}" = "FreeBSD" ] || [ "${platform}" = "NetBSD" ]; then
|
elif [ "${platform}" = "FreeBSD" ] || [ "${platform}" = "NetBSD" ]; then
|
||||||
if $CMD_SYSCTL hw.machine_arch | grep -v 'i[36]86' >/dev/null; then
|
if $CMD_SYSCTL "hw.machine_arch" | grep -v 'i[36]86' >/dev/null; then
|
||||||
CPU_ARCH='64-bit'
|
CPU_ARCH='64-bit'
|
||||||
fi
|
fi
|
||||||
elif [ "${platform}" = "OpenBSD" ]; then
|
elif [ "${platform}" = "OpenBSD" ]; then
|
||||||
if $CMD_SYSCTL hw.machine | grep -v 'i[36]86' >/dev/null; then
|
if $CMD_SYSCTL "hw.machine" | grep -v 'i[36]86' >/dev/null; then
|
||||||
CPU_ARCH='64-bit'
|
CPU_ARCH='64-bit'
|
||||||
fi
|
fi
|
||||||
elif [ "${platform}" = "SunOS" ]; then
|
elif [ "${platform}" = "SunOS" ]; then
|
||||||
@@ -273,7 +274,11 @@ cpu_and_os_arch () { local PTFUNCNAME=cpu_and_os_arch;
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -z "$CMD_FILE" ]; then
|
if [ -z "$CMD_FILE" ]; then
|
||||||
|
if [ "$CMD_GETCONF" ] && $CMD_GETCONF LONG_BIT 1>/dev/null 2>&1; then
|
||||||
|
OS_ARCH="$($CMD_GETCONF LONG_BIT 2>/dev/null)-bit"
|
||||||
|
else
|
||||||
OS_ARCH='N/A'
|
OS_ARCH='N/A'
|
||||||
|
fi
|
||||||
elif $CMD_FILE /bin/sh | grep '64-bit' >/dev/null; then
|
elif $CMD_FILE /bin/sh | grep '64-bit' >/dev/null; then
|
||||||
OS_ARCH='64-bit'
|
OS_ARCH='64-bit'
|
||||||
fi
|
fi
|
||||||
@@ -354,17 +359,17 @@ find_virtualization_dmesg () { local PTFUNCNAME=find_virtualization_dmesg;
|
|||||||
# TODO: Maybe worth it to just dump dmidecode once and parse that?
|
# TODO: Maybe worth it to just dump dmidecode once and parse that?
|
||||||
dmidecode_system_info () { local PTFUNCNAME=dmidecode_system_info;
|
dmidecode_system_info () { local PTFUNCNAME=dmidecode_system_info;
|
||||||
if [ "${CMD_DMIDECODE}" ]; then
|
if [ "${CMD_DMIDECODE}" ]; then
|
||||||
local vendor="$($CMD_DMIDECODE -s system-manufacturer 2>/dev/null | sed 's/ *$//g')"
|
local vendor="$($CMD_DMIDECODE -s "system-manufacturer" 2>/dev/null | sed 's/ *$//g')"
|
||||||
echo "vendor ${vendor}"
|
echo "vendor ${vendor}"
|
||||||
if [ "${vendor}" ]; then
|
if [ "${vendor}" ]; then
|
||||||
local product="$($CMD_DMIDECODE -s system-product-name 2>/dev/null | sed 's/ *$//g')"
|
local product="$($CMD_DMIDECODE -s "system-product-name" 2>/dev/null | sed 's/ *$//g')"
|
||||||
local version="$($CMD_DMIDECODE -s system-version 2>/dev/null | sed 's/ *$//g')"
|
local version="$($CMD_DMIDECODE -s "system-version" 2>/dev/null | sed 's/ *$//g')"
|
||||||
local chassis="$($CMD_DMIDECODE -s chassis-type 2>/dev/null | sed 's/ *$//g')"
|
local chassis="$($CMD_DMIDECODE -s "chassis-type" 2>/dev/null | sed 's/ *$//g')"
|
||||||
local servicetag="$($CMD_DMIDECODE -s system-serial-number 2>/dev/null | sed 's/ *$//g')"
|
local servicetag="$($CMD_DMIDECODE -s "system-serial-number" 2>/dev/null | sed 's/ *$//g')"
|
||||||
local system="${vendor}; ${product}; v${version} (${chassis})"
|
local system="${vendor}; ${product}; v${version} (${chassis})"
|
||||||
|
|
||||||
echo "system ${system}"
|
echo "system ${system}"
|
||||||
echo "servicetag ${servicetag:-Not found}"
|
echo "servicetag ${servicetag:-"Not found"}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@@ -1264,6 +1264,25 @@ is \
|
|||||||
" some weird format etc 1 day, 15:08, 11 users, load average: 0.18, 0.09, 0.08" \
|
" some weird format etc 1 day, 15:08, 11 users, load average: 0.18, 0.09, 0.08" \
|
||||||
"parse_uptime returns uptime as-if if it doesn't contain an 'up'"
|
"parse_uptime returns uptime as-if if it doesn't contain an 'up'"
|
||||||
|
|
||||||
|
# parse_lvs
|
||||||
|
|
||||||
|
is \
|
||||||
|
"$(format_lvs "" "" "")" \
|
||||||
|
"Cannot execute 'lvs'" \
|
||||||
|
"format_lvs has a meaningful error message if all goes wrong"
|
||||||
|
|
||||||
|
echo "There was an error..." > "$TMPDIR/in"
|
||||||
|
like \
|
||||||
|
"$(format_lvs "$TMPDIR/some_file_that_does_not_exist" "" "$TMPDIR/in")" \
|
||||||
|
"lvs didn't output anything and had the following errors:" \
|
||||||
|
"format_lvs shows the stderr of lvs if the lvs file doesn't exist"
|
||||||
|
|
||||||
|
echo "Pretending to be an lvs dump" > "$TMPDIR/in"
|
||||||
|
is \
|
||||||
|
"$(format_lvs "$TMPDIR/in" "" "")" \
|
||||||
|
"Pretending to be an lvs dump" \
|
||||||
|
"format_lvs has a meaningful error message if all goes wrong"
|
||||||
|
|
||||||
# report_system_summary
|
# report_system_summary
|
||||||
parse_options "$BIN_DIR/pt-summary"
|
parse_options "$BIN_DIR/pt-summary"
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user