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_\ | 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"