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`)
> ./sysdump.sh dump.json
Explore specific keys of a dump
> ./sysdump.sh dump.json uname timezone

View file

@ -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 "}"