diff options
author | Jonas Smedegaard <dr@jones.dk> | 2006-07-28 12:45:07 +0000 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2006-07-28 12:45:07 +0000 |
commit | d0d3b924a9e8acceaead68d5be9a6fa83e7e20d0 (patch) | |
tree | 1cb4c4d37753faa56e8feab5a00e75886bba8790 /showlog | |
parent | 78d646b8b6ad3ff09d3ef6539b4533a8e84c0fcc (diff) |
include only recent logfiles. Restructure internally.
Diffstat (limited to 'showlog')
-rwxr-xr-x | showlog | 77 |
1 files changed, 47 insertions, 30 deletions
@@ -3,7 +3,7 @@ # /usr/local/sbin/showlog # Copyright 2002 Jonas Smedegaard <dr@jones.dk> # -# $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 |