#!/bin/bash # # Created 20 April, 1999 # Lance Spitzner, lance@spitzner.net # # Shows last 10 entries of critical system logs. # Build in some "artificial intelligence" using # greps and sorts. You can select a specific # hosts logs, or you can select all hosts logs. # # Add whatever grep/sort statements you want to the # functions below. The ones included are just # examples. ##### Build variables if [ "$1" = "all" ]; then system="" else system=$1 fi log=$2 ##### Functions secure () { echo -e "\n\t--- Last 10 entries in /var/log/secure ---\n" grep "$system" /var/log/secure | grep -v "172.16.1." | tail -10 } messages () { echo -e "\n\t--- Last 10 entries in /var/log/messages ---\n" grep "$system" /var/log/messages | grep -E -v '(named|MARK)' | tail -10 } maillog () { echo -e "\n\t--- Last 10 entries in /var/log/maillog ---\n" grep "$system" /var/log/maillog | tail -10 } title () { if [ "$system" = "" ]; then echo -e "\n### These are the log results of all systems ###" else echo -e "\n### These are the log results of system $system ###" fi } ##### Actual program case $log in secure) title secure ;; messages) title messages ;; maillog) title maillog ;; all) title secure messages maillog ;; *) echo -e "\nUsage: `basename $0` " echo echo " " echo " Can either be a single source you want to grep" echo " for in the log, or type \"all\" for all hosts in the" echo " log file." echo echo " " echo " secure -> for /var/log/secure" echo " messages -> for /var/log/messages" echo " maillog -> for /var/log/maillog" echo -e "\tall -> for all three log files\n" ;; esac exit 0