aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoïc Guégan <loic.guegan@mailbox.org>2024-07-05 16:37:36 +0200
committerLoïc Guégan <loic.guegan@mailbox.org>2024-07-05 16:37:36 +0200
commit0bd910dc567b420e28584ccdfb80ce65c9f49e98 (patch)
tree8b1aae599617d8e6155294f2e6309c4e1fe09330
parent90f9e6812383835c315f6c3c94ec8a9c791320bf (diff)
Minor changes
-rw-r--r--README.md2
-rwxr-xr-xsysdump.sh9
2 files changed, 11 insertions, 0 deletions
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