diff options
author | Simon Rettberg | 2016-10-18 14:20:21 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-10-18 14:20:21 +0200 |
commit | 9880003a2e5642bfdbff1fcff74cca66d93a8f33 (patch) | |
tree | 75d3874c1bca623407b482b635e505addb08e13e | |
parent | [xorg] Include wacom drivers, support Ubuntu 16.04 (diff) | |
download | tm-scripts-9880003a2e5642bfdbff1fcff74cca66d93a8f33.tar.gz tm-scripts-9880003a2e5642bfdbff1fcff74cca66d93a8f33.tar.xz tm-scripts-9880003a2e5642bfdbff1fcff74cca66d93a8f33.zip |
[debug-report-bwlp] Revive old debug reporting script
7 files changed, 154 insertions, 0 deletions
diff --git a/remote/modules/debug-report-bwlp/data/opt/openslx/bin/debug_report b/remote/modules/debug-report-bwlp/data/opt/openslx/bin/debug_report new file mode 100755 index 00000000..40f0c310 --- /dev/null +++ b/remote/modules/debug-report-bwlp/data/opt/openslx/bin/debug_report @@ -0,0 +1,114 @@ +#!/bin/bash +# bash because of {,} expansion + +TOOLS=" + journalctl + systemctl + loginctl + lspci + lsusb + lsmod + mount + dmidecode +" + +URL="http://132.230.8.113/error_report.php" + +if [ "$UID" != "0" ]; then + echo "Debug Reports können nur von root versendet werden" >&2 + exit 1 +fi + +if ! curl -H "Expect:" -f -s -S --connect-timeout 5 "$URL" > /dev/null; then + echo "Kann den Debug-Report-Server in Freiburg nicht erreichen. :-(" >&2 + exit 1 +fi + +rm -rf /tmp/debug-report +mkdir -p /tmp/debug-report/{static,generated} + +if [ ! -d /tmp/debug-report ]; then + echo "FEHLER: Konnte /tmp/debug-report nicht erstellen!" >&2 + exit 1 +fi + +if ! cd /tmp/debug-report; then + echo "Cannot go to /tmp/debug-report" + exit 1 +fi + +cat > err-desc <<HEREEND + +# Bitte hier kurz eine passende Fehlerbeschreibung eingeben, anschließend +# Strg+O, ENTER, Strg+X, ENTER drücken. +HEREEND + +nano -w err-desc + +if ! grep -vqE '(^$)|(^# )' err-desc; then + echo "Fehlerberichterstattung aufgrund leerer Beschreibung abgebrochen." + exit 1 +fi + +echo -n "Beginne mit dem Erstellen des Fehlerberichts..." + +. /opt/openslx/config + +echo "TIME INFORMATION (hwclock, date):" > metadata +hwclock >> metadata +date >> metadata +for srv in $SLX_NTP_SERVER 0.de.pool.ntp.org; do + ntpdate -u -q -p 2 -t 1 "$srv" >> metadata 2> /dev/null && break +done +echo -n "..." + +cp /opt/openslx/config /tmp/udhcpclog static/ 2> /dev/null +echo -n "." + +FILES=$(find /tmp/vmware* /tmp/virt /tmp/vmchooser* -type f \( -name "*.log" -o -name "*.conf" -o -name "*.xml" \) 2> /dev/null) +if [ -n "$FILES" ]; then + tar ckf static/vm-related.tar $FILES +fi + +echo -n "." + +cp /var/log/Xorg.0.lo* static/ 2> /dev/null +cp /var/log/{auth.log,kdm.log,syslog,messages,user.log} static/ 2> /dev/null +cp /proc/{cpu,mem}info static/ 2> /dev/null +echo -n "." + +for tool in $TOOLS; do + $tool > "generated/${tool}-out" 2> "generated/${tool}-err" + echo -n "." +done + +ip a > "generated/ip-a-out" 2> "generated/ip-a-err" +echo -n "." + +systemctl status > "generated/systemctl-status-out" 2> "generated/systemctl-status-err" +echo -n "." + +ps auxf > "generated/ps-out" 2> "generated/ps-err" +echo -n "." + +find generated/ -type f -name "*-err" -size 0 -delete > /dev/null 2>/dev/null + +echo "..fertig!" + +cd /tmp +rm -f -- error-report.tar.gz +echo -n "Packe Fehlerbericht ein..." +if ! tar czf error-report.tar.gz debug-report; then + echo "Fehler beim Packen des Berichts!" >&2 + exit 1 +fi +echo "....fertig!" + +echo -n "Lade Fehlerbericht hoch...." +if ! curl -H "Expect:" -f -s -S -F "file=@error-report.tar.gz;filename=report" "$URL" > /dev/null; then + echo "Fehler beim Hochladen des Fehlerberichts :-(" >&2 + exit 1 +fi + +echo "Fehlerbericht erfolgreich versendet!" + diff --git a/remote/modules/debug-report-bwlp/module.build b/remote/modules/debug-report-bwlp/module.build new file mode 100644 index 00000000..1be608b8 --- /dev/null +++ b/remote/modules/debug-report-bwlp/module.build @@ -0,0 +1,23 @@ +fetch_source() { + : +} + +build() { + + for BIN in $REQUIRED_BINARIES; do + OPT="${BIN:0:1}" + [[ "$BIN" == @* ]] && BIN=$(echo "$BIN" | cut -c 2-) + BIN_LOCATION=$(which ${BIN}) + if [ ! -z ${BIN_LOCATION} -a -e ${BIN_LOCATION} ]; then + tarcopy "$(get_link_chain ${BIN_LOCATION})" "${MODULE_BUILD_DIR}" + elif [ "$OPT" != "@" ]; then + perror "'${BIN}' not found on system." + else + pwarning "'${BIN}' not found on the system." + fi + done +} + +post_copy() { + : +} diff --git a/remote/modules/debug-report-bwlp/module.conf b/remote/modules/debug-report-bwlp/module.conf new file mode 100644 index 00000000..45830ef8 --- /dev/null +++ b/remote/modules/debug-report-bwlp/module.conf @@ -0,0 +1,4 @@ +REQUIRED_BINARIES=" + curl + nano +" diff --git a/remote/modules/debug-report-bwlp/module.conf.debian b/remote/modules/debug-report-bwlp/module.conf.debian new file mode 100644 index 00000000..14ae2d29 --- /dev/null +++ b/remote/modules/debug-report-bwlp/module.conf.debian @@ -0,0 +1,4 @@ +REQUIRED_INSTALLED_PACKAGES=" + curl + nano +" diff --git a/remote/modules/debug-report-bwlp/module.conf.opensuse b/remote/modules/debug-report-bwlp/module.conf.opensuse new file mode 100644 index 00000000..14ae2d29 --- /dev/null +++ b/remote/modules/debug-report-bwlp/module.conf.opensuse @@ -0,0 +1,4 @@ +REQUIRED_INSTALLED_PACKAGES=" + curl + nano +" diff --git a/remote/modules/debug-report-bwlp/module.conf.ubuntu b/remote/modules/debug-report-bwlp/module.conf.ubuntu new file mode 100644 index 00000000..14ae2d29 --- /dev/null +++ b/remote/modules/debug-report-bwlp/module.conf.ubuntu @@ -0,0 +1,4 @@ +REQUIRED_INSTALLED_PACKAGES=" + curl + nano +" diff --git a/remote/targets/stage32-bwlp/debug-report-bwlp b/remote/targets/stage32-bwlp/debug-report-bwlp new file mode 120000 index 00000000..54a528ce --- /dev/null +++ b/remote/targets/stage32-bwlp/debug-report-bwlp @@ -0,0 +1 @@ +../../modules/debug-report-bwlp
\ No newline at end of file |