Skip to content
Snippets Groups Projects
Commit f7d7bac7 authored by Jörg Sachse's avatar Jörg Sachse
Browse files

fix: read CLI arguments correctly

parent a500e7ce
No related branches found
No related tags found
No related merge requests found
...@@ -6,8 +6,6 @@ ...@@ -6,8 +6,6 @@
# - Jens Steidl (<Jens.Steidl@slub-dresden.de>) # - Jens Steidl (<Jens.Steidl@slub-dresden.de>)
# INVOCATION: # INVOCATION:
# ./error_summary.sh [-h] [-n NUM] [-d DAYS] [-w] [-c] # ./error_summary.sh [-h] [-n NUM] [-d DAYS] [-w] [-c]
# KNOWN PROBLEMS:
# - Showing Warnings with "-w" is buggy, use with caution.
### DEFAULTS ### DEFAULTS
...@@ -26,28 +24,31 @@ fi ...@@ -26,28 +24,31 @@ fi
### CLI ARGUMENTS ### CLI ARGUMENTS
for ARG in "$@"; do # for ARG in "$@"; do
case ${ARG} in while [[ $# -gt 0 ]]; do
case ${1} in
-h|--help) -h|--help)
echo "call help function here" echo "call help function here"
exit 0 exit 0
;; ;;
-n|--chars) -n|--chars)
HOW_MANY_CHARS="${2}" HOW_MANY_CHARS="${2}"
shift; shift; shift;
;; ;;
-d|--days) -d|--days)
HOW_MANY_DAYS="${2}" HOW_MANY_DAYS="${2}"
shift; shift; shift;
;; ;;
-w|--warn) -w|--warn)
WARN="|WARN" COUNT_WARNINGS="true"
shift;
;; ;;
-c|--class) -c|--class)
FILTER_STRING=" (ERROR${WARN})\s+\[[^[]*\]" PRINT_ONLY_CLASSNAMES="true"
shift;
;; ;;
*) *)
echo "'${ARG}' is not a valid parameter. Please use '$( basename "${0}" ) --help'. Exiting." echo "'${1}' is not a valid parameter. Please use '$( basename "${0}" ) --help'. Exiting."
exit 1 exit 1
;; ;;
esac esac
...@@ -55,20 +56,23 @@ done ...@@ -55,20 +56,23 @@ done
echo ""
echo "USING THE FOLLOWING SETTINGS:"
echo -e "\tSERVERNAME: '${HOSTNAME}'"
echo -e "\tFILTERING LOGS FROM $( date -d "${HOW_MANY_DAYS} days ago" +%Y-%m-%d ) UNTIL $( date -d today +%Y-%m-%d )"
echo -e "\tHOW MANY CHARACTERS: ${HOW_MANY_CHARS}"
echo -en "\tCOUNT WARNINGS: "; [[ "${WARN}" == "|WARN" ]] && echo "yes" || echo "no"
### FUNCTIONS ### FUNCTIONS
# thx @Steidl! # thx @Steidl!
# grep -o "STARTZEICHENKETTE..\{ANZAHL_ZEICHEN_NACH_STARTZEICHENKETTE\}" | sort | uniq -c | sort -nr # grep -o "STARTZEICHENKETTE..\{ANZAHL_ZEICHEN_NACH_STARTZEICHENKETTE\}" | sort | uniq -c | sort -nr
set_filter_string(){
if [[ "${COUNT_WARNINGS}" == "true" ]]; then
WARN="|WARN"
fi
if [[ "${PRINT_ONLY_CLASSNAMES}" == true ]]; then
FILTER_STRING=" (ERROR${WARN})\s+\[[^[]*\]"
else
FILTER_STRING=" (ERROR${WARN})\s+\[.{0,${HOW_MANY_CHARS}}"
fi
}
get_last_n_days(){ get_last_n_days(){
LOGFILES="$( find "${SERVER_LOG_DIR}/" -maxdepth 1 -mtime -"${HOW_MANY_DAYS}" -name "server.log*" )" LOGFILES="$( find "${SERVER_LOG_DIR}/" -maxdepth 1 -mtime -"${HOW_MANY_DAYS}" -name "server.log*" )"
for LOGFILE in ${LOGFILES}; do for LOGFILE in ${LOGFILES}; do
...@@ -88,6 +92,15 @@ get_last_n_days(){ ...@@ -88,6 +92,15 @@ get_last_n_days(){
### MAIN ### MAIN
echo ""
echo "USING THE FOLLOWING SETTINGS:"
echo -e "\tSERVERNAME: '${HOSTNAME}'"
echo -e "\tFILTERING LOGS FROM $( date -d "${HOW_MANY_DAYS} days ago" +%Y-%m-%d ) UNTIL $( date -d today +%Y-%m-%d )"
echo -e "\tHOW MANY CHARACTERS: ${HOW_MANY_CHARS}"
echo -en "\tCOUNT WARNINGS: "; [[ "${WARN}" == "|WARN" ]] && echo "yes" || echo "no"
set_filter_string
echo "" echo ""
echo "REPORT LAST ${HOW_MANY_DAYS} DAYS:" echo "REPORT LAST ${HOW_MANY_DAYS} DAYS:"
get_last_n_days get_last_n_days
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment