blob: f7de850e81cdebeb83afd6fdbfaf368d09e5432a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/usr/bin/env bash
ensure() {
command -v "$1" >/dev/null 2>&1 || { echo >&2 "$1 not found, abort..."; exit 1; }
}
safecat() {
[ -f "$1" ] && [ -r "$1" ] && cat "$1"
}
safecmd() {
command -v "$1" >/dev/null 2>&1 && $@
}
dump() {
[ -z "$2" ] && return
key=$1
shift
value=$($@|base64 -w 0)
[ "$USE_COMMA" -eq 1 ] && echo "\"${key}\": \"${value}\","
[ "$USE_COMMA" -eq 0 ] && echo "\"${key}\": \"${value}\""
}
# Read mode
if [ $# -gt 0 ]
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
done <<< "$(cat "$file"|jq -r 'keys[]')"
exit 0
fi
# Check commands exists
ensure base64
ensure date
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/
USE_COMMA=0
dump "root_folder" safecmd ls -al /
echo "}"
|