From d0d3b924a9e8acceaead68d5be9a6fa83e7e20d0 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Fri, 28 Jul 2006 12:45:07 +0000 Subject: include only recent logfiles. Restructure internally. --- showlog | 77 ++++++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 30 deletions(-) (limited to 'showlog') diff --git a/showlog b/showlog index a659a1e..37e28dd 100755 --- a/showlog +++ b/showlog @@ -3,7 +3,7 @@ # /usr/local/sbin/showlog # Copyright 2002 Jonas Smedegaard # -# $Id: showlog,v 1.5 2002-03-14 14:40:57 jonas Exp $ +# $Id: showlog,v 1.6 2006-07-28 12:45:07 jonas Exp $ # # Show topic-specific log entries # @@ -22,69 +22,86 @@ function exit1() { exit 1 } +function cat_logs() { + rootdir=$1 + shift + patterns=$@ + + for pattern in $patterns; do + for file in `find $rootdir -name "$pattern" -type f -mindepth 1 -maxdepth 1 -follow | sort`; do + case $pattern in + *.gz) + zcat $file;; + *.bz2) + bzcat $file;; + *) + cat $file;; + esac + done + done +} + tail_history="50" target=$1 -logroot="/var/log" +shift || exit1 "Missing argument" + case "$target" in ftp) log="xferlog" - logs="$log.??.gz $log.?.gz $log.? $log" ;; web) logroot="/var/log/apache" log="access.log" - logs="$log.??.gz $log.?.gz $log.? $log" ;; weberror|weberrors) logroot="/var/log/apache" log="error.log" - logs="$log.??.gz $log.?.gz $log.? $log" ;; websuexec) logroot="/var/log/apache" log="suexec.log" - logs="$log.??.gz $log.?.gz $log.? $log" ;; mail) log="mail.log" - logs="$log.??.gz $log.?.gz $log.? $log" ;; system) log="syslog" - logs="$log.??.gz $log.?.gz $log.? $log" ;; *) usage ;; esac -shift - -function cat_logs() { - logroot=$1 - shift - for pattern in $@; do - for file in `find $logroot -name "$pattern" -type f -mindepth 1 -maxdepth 1 -follow | sort`; do - case $pattern in - *.gz) - zcat $file;; - *.bz2) - bzcat $file;; - *) - cat $file;; - esac - done - done -} +case "$target" in + ftp|mail|system) + logroot="/var/log" + ;; + web|weberror|weberrors|websuexec) + logroot="/var/log/apache" + ;; + *) + usage + exit1 "Undefined logroot for \"$target\"" + ;; +esac +case "$target" in + ftp|web|weberror|weberrors|websuexec|mail|system) + logpatterns="$log.? $log" +# logpatterns="$log.??.gz $log.?.gz $log.? $log" + ;; + *) + exit1 "Undefined logpattern for \"$target\"" + ;; +esac if [ $# \> 0 ]; then grep_opts="" for keyword in $@; do grep_opts="$opts -e $keyword" done - cat_logs $logroot $logs | grep -i $grep_opts | tail -n $tail_history - [ -f $logroot/$log ] && tail -n 0 -f $logroot/$log | grep -i $grep_opts + cat_logs $logroot $logpatterns | grep -i $grep_opts | tail -n $tail_history +# [ -f $logroot/$log ] && tail -n 0 -F $logroot/$log | grep -i $grep_opts else - cat_logs $logroot $logs | tail -n $tail_history - [ -f $logroot/$log ] && tail -n 0 -f $logroot/$log + cat_logs $logroot $logpatterns | tail -n $tail_history +# [ -f $logroot/$log ] && tail -n 0 -F $logroot/$log fi -- cgit v1.2.3