From 62417ef150e40118485dfd61015d15f53cf97108 Mon Sep 17 00:00:00 2001 From: Christoph Date: Fri, 11 Sep 2026 13:54:42 +0200 Subject: [PATCH] scan_bad_signature.sh: add period of the finds to the statistics. --- scan_bad_signature.sh | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/scan_bad_signature.sh b/scan_bad_signature.sh index 320550b..cb57bf8 100755 --- a/scan_bad_signature.sh +++ b/scan_bad_signature.sh @@ -786,6 +786,8 @@ fi declare -i total_checked=0 declare -i total_bad=0 declare -i total_failed_users=0 +overall_date_min="" +overall_date_max="" for _user in "${selected_user_arr[@]}" ; do @@ -825,6 +827,30 @@ for _user in "${selected_user_arr[@]}" ; do _user_bad=$(tail -n +2 "$user_tsv" | wc -l) (( total_bad += _user_bad )) + # - Zeitraum (min/max Datum) der Dateien mit 'Bad Signature' fuer + # - diesen Account aus der mtime-Spalte des TSV ermitteln, und + # - gleich in die Gesamt-Min/Max mit einfliessen lassen. + # - + if [[ $_user_bad -gt 0 ]] ; then + _dates_sorted="$(tail -n +2 "$user_tsv" | cut -f4 | cut -c1-10 | sort)" + _user_date_min="$(echo "$_dates_sorted" | head -n1)" + _user_date_max="$(echo "$_dates_sorted" | tail -n1)" + if [[ "$_user_date_min" = "$_user_date_max" ]] ; then + _user_zeitraum="$_user_date_min" + else + _user_zeitraum="${_user_date_min} bis ${_user_date_max}" + fi + + if [[ -z "$overall_date_min" || "$_user_date_min" < "$overall_date_min" ]] ; then + overall_date_min="$_user_date_min" + fi + if [[ -z "$overall_date_max" || "$_user_date_max" > "$overall_date_max" ]] ; then + overall_date_max="$_user_date_max" + fi + else + _user_zeitraum="-" + fi + # - Scan lief durch: bei Funden gelb hervorheben statt schlichtem 'ok' # - if [[ $_user_bad -gt 0 ]] ; then @@ -862,8 +888,10 @@ for _user in "${selected_user_arr[@]}" ; do echo -e " Uebersprungene Dateien...................: ${_skipped}" if [[ $_user_bad -gt 0 ]] ; then echo -e " Dateien mit 'Bad Signature'..............: \033[1;33m${_user_bad} (${_pct} %)\033[m" + echo -e " Zeitraum betroffener Dateien.............: \033[1;33m${_user_zeitraum}\033[m" else echo -e " Dateien mit 'Bad Signature'..............: ${_user_bad} (${_pct} %)" + echo -e " Zeitraum betroffener Dateien.............: ${_user_zeitraum}" fi # - Leerzeile HINTER der Account-Statistik, damit sie nicht am # - 'Scanning account ..' des naechsten Accounts klebt. @@ -876,12 +904,26 @@ for _user in "${selected_user_arr[@]}" ; do echo " Gescannte Dateien........................: ${_checked}" echo " Uebersprungene Dateien...................: ${_skipped}" echo " Dateien mit 'Bad Signature'..............: ${_user_bad} (${_pct} %)" + echo " Zeitraum betroffener Dateien.............: ${_user_zeitraum}" } >> "$report_file" done total_pct="$(calc_percent "$total_bad" "$total_checked")" +# - Zeitraum (min/max Datum) ueber alle Dateien mit 'Bad Signature' +# - hinweg, aus den bereits pro Account ermittelten Min/Max-Werten. +# - +if [[ -n "$overall_date_min" ]] ; then + if [[ "$overall_date_min" = "$overall_date_max" ]] ; then + overall_zeitraum="$overall_date_min" + else + overall_zeitraum="${overall_date_min} bis ${overall_date_max}" + fi +else + overall_zeitraum="-" +fi + # - Gesamtergebnis ans Ende des Reportfiles - gleiches Looking wie # - die Ergebnis-Bloecke pro Account # - @@ -896,6 +938,7 @@ total_pct="$(calc_percent "$total_bad" "$total_checked")" [[ $total_failed_users -gt 0 ]] && echo "Accounts mit Scan-Fehler...................: ${total_failed_users}" echo "Gescannte Dateien insgesamt.................: ${total_checked}" echo "Dateien mit 'Bad Signature' insgesamt.......: ${total_bad} (${total_pct} %)" + echo "Zeitraum betroffener Dateien insgesamt......: ${overall_zeitraum}" } >> "$report_file" blank_line @@ -907,6 +950,11 @@ if $terminal ; then [[ $total_failed_users -gt 0 ]] && echo -e " Accounts mit Scan-Fehler...................: \033[1;31m${total_failed_users}\033[m" echo -e " Gescannte Dateien insgesamt.................: ${total_checked}" echo -e " Dateien mit 'Bad Signature' insgesamt.......: \033[1;31m${total_bad} (${total_pct} %)\033[m" + if [[ $total_bad -gt 0 ]] ; then + echo -e " Zeitraum betroffener Dateien insgesamt......: \033[1;31m${overall_zeitraum}\033[m" + else + echo -e " Zeitraum betroffener Dateien insgesamt......: ${overall_zeitraum}" + fi echo -e " Report-Datei................................: reports/$(basename "${report_file}")" echo "" fi