Improve script

This commit is contained in:
Loïc Guégan 2024-07-04 12:12:34 +02:00
parent 1120e46df5
commit 8c665e4e1c
2 changed files with 46 additions and 32 deletions

View file

@ -11,3 +11,6 @@ Run a dump on a remote machine using ssh:
Explore a dump (require `jq`) Explore a dump (require `jq`)
> ./sysdump.sh dump.json > ./sysdump.sh dump.json
Explore specific keys of a dump
> ./sysdump.sh dump.json uname timezone

View file

@ -15,7 +15,8 @@ safecmd() {
dump() { dump() {
[ -z "$2" ] && return [ -z "$2" ] && return
key=$1 key=$1
value=$(echo "$2"|base64 -w 0) shift
value=$($@|base64 -w 0)
[ "$USE_COMMA" -eq 1 ] && echo "\"${key}\": \"${value}\"," [ "$USE_COMMA" -eq 1 ] && echo "\"${key}\": \"${value}\","
[ "$USE_COMMA" -eq 0 ] && echo "\"${key}\": \"${value}\"" [ "$USE_COMMA" -eq 0 ] && echo "\"${key}\": \"${value}\""
} }
@ -26,6 +27,16 @@ then
ensure jq ensure jq
file=$1 file=$1
[ ! -f "$file" ] && { echo >&2 "Dump \"$file\" not found, abort..."; exit 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 while IFS= read -r key; do
echo "====================> $key" echo "====================> $key"
cat "$file"|jq -r ".[\"${key}\"]"|base64 -d cat "$file"|jq -r ".[\"${key}\"]"|base64 -d
@ -41,37 +52,37 @@ ensure find
# Start dump # Start dump
echo "{" echo "{"
USE_COMMA=1 USE_COMMA=1
dump "date" "$(date +%s)" dump "date" date +%s
dump "hostname" "$(safecmd hostname)" dump "hostname" safecmd hostname
dump "id" "$(safecmd id)" dump "id" safecmd id
dump "uid" "$(safecmd id -u)" dump "uid" safecmd id -u
dump "gid" "$(safecmd id -g)" dump "gid" safecmd id -g
dump "gids" "$(safecmd id -G)" dump "gids" safecmd id -G
dump "ipaddr" "$(safecmd ip addr)" dump "ipaddr" safecmd ip addr
dump "/etc/nftables.conf" "$(safecat /etc/nftables.conf)" dump "/etc/nftables.conf" safecat /etc/nftables.conf
dump "/proc/cpuinfo" "$(safecat /proc/cpuinfo)" dump "/proc/cpuinfo" safecat /proc/cpuinfo
dump "/etc/os-release" "$(safecat /etc/os-release)" dump "/etc/os-release" safecat /etc/os-release
dump "/proc/zoneinfo" "$(safecat /proc/zoneinfo)" dump "/proc/zoneinfo" safecat /proc/zoneinfo
dump "/proc/meminfo" "$(safecat /proc/meminfo)" dump "/proc/meminfo" safecat /proc/meminfo
dump "/proc/cmdline" "$(safecat /proc/cmdline)" dump "/proc/cmdline" safecat /proc/cmdline
dump "uname" "$(uname -a)" dump "uname" uname -a
dump "lsb_release" "$(safecmd lsb_release)" dump "lsb_release" safecmd lsb_release
dump "uptime" "$(safecmd uptime)" dump "uptime" safecmd uptime
dump "mount" "$(safecmd mount)" dump "mount" safecmd mount
dump "lscpu" "$(safecmd lscpu)" dump "lscpu" safecmd lscpu
dump "lsblk" "$(safecmd lsblk)" dump "lsblk" safecmd lsblk
dump "lsusb" "$(safecmd lsusb)" dump "lsusb" safecmd lsusb
dump "lsmod" "$(safecmd lsmod)" dump "lsmod" safecmd lsmod
dump "lspci" "$(safecmd lspci)" dump "lspci" safecmd lspci
dump "lsirq" "$(safecmd lsirq)" dump "lsirq" safecmd lsirq
dump "lsfd" "$(safecmd lsfd)" dump "lsfd" safecmd lsfd
dump "locale" "$(safecmd locale)" dump "locale" safecmd locale
dump "timezone" "$(safecat /etc/timezone)" dump "timezone" safecat /etc/timezone
dump "systemctl" "$(safecmd systemctl --no-pager)" dump "systemctl" safecmd systemctl --no-pager
dump "free" "$(safecmd free -h)" dump "free" safecmd free -h
dump "df" "$(safecmd df -h)" dump "df" safecmd df -h
dump "boot_folder" "$(safecmd ls -al /boot/)" dump "boot_folder" safecmd ls -al /boot/
USE_COMMA=0 USE_COMMA=0
dump "root_folder" "$(safecmd ls -al /)" dump "root_folder" safecmd ls -al /
echo "}" echo "}"