From 0bd910dc567b420e28584ccdfb80ce65c9f49e98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Gu=C3=A9gan?= Date: Fri, 5 Jul 2024 16:37:36 +0200 Subject: [PATCH] Minor changes --- README.md | 2 ++ sysdump.sh | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/README.md b/README.md index 0d8b167..f34ddd7 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,8 @@ Run a dump: Run a dump on a remote machine using ssh: > cat sysdump.sh | ssh user@host /bin/bash > dump.json +Extra ouput from ssh (e.g: MOTD) will be automatically cleaned by `sysdump.sh`. + To explore a dump (require `jq`), see help as follow: > ./sysdump.sh -h diff --git a/sysdump.sh b/sysdump.sh index a060b0b..af77d52 100755 --- a/sysdump.sh +++ b/sysdump.sh @@ -29,7 +29,14 @@ dump() { [ "$USE_COMMA" -eq 0 ] && echo "\"${entry}\": \"${value}\"" } +cleandump() { + newdump=$(mktemp) + cat "$1" | awk 'BEGIN{STARTED=0} /#!#!#!#! SYSDUMP START HERE #!#!#!#/{STARTED=1};/#!#!#!#! SYSDUMP END HERE #!#!#!#/{STARTED=0};!/#!#!#!#! SYSDUMP START HERE #!#!#!#/{if(STARTED){print $0}}' > "$newdump" + mv "$newdump" "$1" +} + sysdump() { + echo "#!#!#!#! SYSDUMP START HERE #!#!#!#" # Start dump echo "{" USE_COMMA=1 @@ -106,6 +113,7 @@ sysdump() { USE_COMMA=0 dump "dmesg" safecmdroot dmesg echo "}" + echo "#!#!#!#! SYSDUMP END HERE #!#!#!#" } # Parse arguments @@ -155,6 +163,7 @@ ensure base64 # Do dump [ "$ACTION" == "dump" ] && { sysdump; exit 0; } +[ $(grep -c '#!#!#!#! SYSDUMP START HERE #!#!#!#' "$1") -ne 0 ] && cleandump "$1" # List entries [ "$ACTION" == "list" ] && { ensure jq; cat "$1"|jq -r "keys[]"; exit 0; } # Parse dump file