diff --git a/README.md b/README.md index a7f7443..07b2153 100644 --- a/README.md +++ b/README.md @@ -11,3 +11,6 @@ Run a dump on a remote machine using ssh: Explore a dump (require `jq`) > ./sysdump.sh dump.json + +Explore specific keys of a dump +> ./sysdump.sh dump.json uname timezone diff --git a/sysdump.sh b/sysdump.sh index d4a30dc..f7de850 100755 --- a/sysdump.sh +++ b/sysdump.sh @@ -15,7 +15,8 @@ safecmd() { dump() { [ -z "$2" ] && return key=$1 - value=$(echo "$2"|base64 -w 0) + shift + value=$($@|base64 -w 0) [ "$USE_COMMA" -eq 1 ] && echo "\"${key}\": \"${value}\"," [ "$USE_COMMA" -eq 0 ] && echo "\"${key}\": \"${value}\"" } @@ -26,6 +27,16 @@ then ensure jq file=$1 [ ! -f "$file" ] && { echo >&2 "Dump \"$file\" not found, abort..."; exit 1; } + if [ $# -gt 1 ] + then + shift + for key in $@ + do + echo "====================> $key" + cat "$file"|jq -r ".[\"${key}\"]"|base64 -d + done + exit 0 + fi while IFS= read -r key; do echo "====================> $key" cat "$file"|jq -r ".[\"${key}\"]"|base64 -d @@ -41,37 +52,37 @@ ensure find # Start dump echo "{" USE_COMMA=1 -dump "date" "$(date +%s)" -dump "hostname" "$(safecmd hostname)" -dump "id" "$(safecmd id)" -dump "uid" "$(safecmd id -u)" -dump "gid" "$(safecmd id -g)" -dump "gids" "$(safecmd id -G)" -dump "ipaddr" "$(safecmd ip addr)" -dump "/etc/nftables.conf" "$(safecat /etc/nftables.conf)" -dump "/proc/cpuinfo" "$(safecat /proc/cpuinfo)" -dump "/etc/os-release" "$(safecat /etc/os-release)" -dump "/proc/zoneinfo" "$(safecat /proc/zoneinfo)" -dump "/proc/meminfo" "$(safecat /proc/meminfo)" -dump "/proc/cmdline" "$(safecat /proc/cmdline)" -dump "uname" "$(uname -a)" -dump "lsb_release" "$(safecmd lsb_release)" -dump "uptime" "$(safecmd uptime)" -dump "mount" "$(safecmd mount)" -dump "lscpu" "$(safecmd lscpu)" -dump "lsblk" "$(safecmd lsblk)" -dump "lsusb" "$(safecmd lsusb)" -dump "lsmod" "$(safecmd lsmod)" -dump "lspci" "$(safecmd lspci)" -dump "lsirq" "$(safecmd lsirq)" -dump "lsfd" "$(safecmd lsfd)" -dump "locale" "$(safecmd locale)" -dump "timezone" "$(safecat /etc/timezone)" -dump "systemctl" "$(safecmd systemctl --no-pager)" -dump "free" "$(safecmd free -h)" -dump "df" "$(safecmd df -h)" -dump "boot_folder" "$(safecmd ls -al /boot/)" +dump "date" date +%s +dump "hostname" safecmd hostname +dump "id" safecmd id +dump "uid" safecmd id -u +dump "gid" safecmd id -g +dump "gids" safecmd id -G +dump "ipaddr" safecmd ip addr +dump "/etc/nftables.conf" safecat /etc/nftables.conf +dump "/proc/cpuinfo" safecat /proc/cpuinfo +dump "/etc/os-release" safecat /etc/os-release +dump "/proc/zoneinfo" safecat /proc/zoneinfo +dump "/proc/meminfo" safecat /proc/meminfo +dump "/proc/cmdline" safecat /proc/cmdline +dump "uname" uname -a +dump "lsb_release" safecmd lsb_release +dump "uptime" safecmd uptime +dump "mount" safecmd mount +dump "lscpu" safecmd lscpu +dump "lsblk" safecmd lsblk +dump "lsusb" safecmd lsusb +dump "lsmod" safecmd lsmod +dump "lspci" safecmd lspci +dump "lsirq" safecmd lsirq +dump "lsfd" safecmd lsfd +dump "locale" safecmd locale +dump "timezone" safecat /etc/timezone +dump "systemctl" safecmd systemctl --no-pager +dump "free" safecmd free -h +dump "df" safecmd df -h +dump "boot_folder" safecmd ls -al /boot/ USE_COMMA=0 -dump "root_folder" "$(safecmd ls -al /)" +dump "root_folder" safecmd ls -al / echo "}"