This small script will count repeated patterns in the Logs.
Ideal for checking if there are errors that you’re missing while developing.
#!/usr/bin/env bash # count_repeated_pattern_in_logs.sh # By Carles Mateo # Helps to find repeated lines in Logs LOGFILE_MESSAGES="/var/log/messages" LOGFILE_SYSLOG="/var/log/syslog" if [[ -f "${LOGFILE_MESSAGES}" ]]; then LOGFILE=${LOGFILE_MESSAGES} else LOGFILE=${LOGFILE_SYSLOG} fi echo "Using Logfile: ${LOGFILE}" CMD_OUTPUT=`cat ${LOGFILE} | awk '{ $1=$2=$3=$4=""; print $0 }' | sort | uniq -- count | sort --ignore-case --reverse --numeric-sort` echo -e "$CMD_OUTPUT"
Basically it takes out the non relevant fields that can prevent from detecting repetition, like the time, and prints the rest.
Then you will launch it like this:
count_repeated_pattern_in_logs.sh | head -n20
If you are checking a machine with Ubuntu UFW (Firewall) and want to skip those likes:
./repeated.sh | grep -v "UFW BLOCK" | head -n20