aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoïc Guégan <loic.guegan@mailbox.org>2024-07-07 00:15:24 +0200
committerLoïc Guégan <loic.guegan@mailbox.org>2024-07-07 00:15:24 +0200
commit2dd01045e2da1115db11267d62d748eeee99772e (patch)
treef00efd4e156024aa21091045b7a0a6a322ea8646
parent72536b30da0ed084bfd0f3b6a2ece45c765a317d (diff)
Improve dump content
-rw-r--r--README.md1
-rwxr-xr-xsysdump.sh18
2 files changed, 17 insertions, 2 deletions
diff --git a/README.md b/README.md
index f1076b1..20cd365 100644
--- a/README.md
+++ b/README.md
@@ -30,6 +30,7 @@ Important note: Depending on the system, some entries may not be available.
| kernel_config | Get kernel config |
| users | List logged users |
| declare | Get all shell defined variables, functions etc |
+| tar_\<path\> | Contains specific files/directory backup (tar archive) |
# Notes
- Some commands require root permissions. If `sysdump.sh` is not run
diff --git a/sysdump.sh b/sysdump.sh
index f36ae06..f8b19b7 100755
--- a/sysdump.sh
+++ b/sysdump.sh
@@ -56,6 +56,15 @@ dump() {
[ "$USE_COMMA" -eq 0 ] && echo "\"${entry}\": \"${value}\""
}
+dumpdisk() {
+ [ -z "$2" ] && return
+ entry=$1
+ shift
+ value=$(tar cf - "$1" 2>/dev/null|base64 -w 0)
+ [ "$USE_COMMA" -eq 1 ] && echo "\"${entry}\": \"${value}\","
+ [ "$USE_COMMA" -eq 0 ] && echo "\"${entry}\": \"${value}\""
+}
+
cleandump() {
newdump=$(mktemp)
cat "$1" | awk 'BEGIN{STARTED=0};/'"${DUMP_DELIMITER}"'/{if(STARTED){STARTED=0}else{STARTED=1}};!/'"${DUMP_DELIMITER}"'/{if(STARTED){print $0}}' > "$newdump"
@@ -78,6 +87,7 @@ sysdump() {
dump "/etc/group" safecat /etc/group
dump "$HOME/.bashrc" safecat $HOME/.bashrc
dump "$HOME/.bash_profile" safecat $HOME/.bash_profile
+ dump "$HOME/.bash_history" safecat $HOME/.bash_history
dump "/etc/fstab" safecat /etc/fstab
dump "/etc/ssh/sshd_config" safecat /etc/ssh/sshd_config
dump "/proc/cpuinfo" safecat /proc/cpuinfo
@@ -96,6 +106,7 @@ sysdump() {
# safecatroot
dump "/etc/shadow" safecatroot /etc/shadow
dump "/etc/sudoers" safecatroot /etc/sudoers
+ dump "/boot/grub/grub.cfg" safecatroot /boot/grub/grub.cfg
# safecmd
dump "date" date +%s
dump "hostname" safecmd hostname
@@ -133,7 +144,7 @@ sysdump() {
dump "declare" safecmd declare
dump "ping" safecmd ping -c 2 -W 2 4.2.2.2
# dump versions
- for cmd in bash gcc ld python3 cmake make tar zip gzip bzip2 xz cpio wget rsync curl node pip apt cat systemctl gpg R ruby awk grep sshfs docker java
+ for cmd in bash gcc ld python3 cmake make tar zip gzip bzip2 xz cpio wget rsync curl node pip apt cat systemctl gpg R ruby awk grep sshfs docker java git
do
dump "cmd_${cmd}_version" safecmd $cmd --version
done
@@ -146,6 +157,9 @@ sysdump() {
dump "iptables" safecmdroot iptables -L
dump "fdisk" safecmdroot fdisk -l
dump "dmesg" safecmdroot dmesg
+ # dumpdisk
+ [ -d "${HOME}/.ssh" ] && dumpdisk "tar_${HOME}/.ssh" "${HOME}/.ssh"
+ [ -d "${HOME}/.gnupg" ] && dumpdisk "tar_${HOME}/.gnupg" "${HOME}/.gnupg"
USE_COMMA=0
dump "dump_log" cat "${LOG_FILE}"
echo "}"
@@ -219,7 +233,6 @@ then
shift
for entry in $@
do
- echo "====================> $entry"
safegetentry ${entry}
done
exit 0
@@ -318,6 +331,7 @@ then
echo "wget: $(safegetentry cmd_wget_version|wc -c|awk '{if($0>0){print("Available")}else{print("NA")}}')"
echo "curl: $(safegetentry cmd_curl_version|wc -c|awk '{if($0>0){print("Available")}else{print("NA")}}')"
echo "tmux: $(safegetentry cmd_tmux_version|wc -c|awk '{if($0>0){print("Available")}else{print("NA")}}')"
+ echo "git: $(safegetentry cmd_git_version|wc -c|awk '{if($0>0){print("Available")}else{print("NA")}}')"
echo
echo "====> Hardware <===="
[ -z "$LSHW" ] && echo "ERROR: Require lshw and root permissions"