summaryrefslogtreecommitdiff
path: root/showlog
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2006-07-28 12:45:07 +0000
committerJonas Smedegaard <dr@jones.dk>2006-07-28 12:45:07 +0000
commitd0d3b924a9e8acceaead68d5be9a6fa83e7e20d0 (patch)
tree1cb4c4d37753faa56e8feab5a00e75886bba8790 /showlog
parent78d646b8b6ad3ff09d3ef6539b4533a8e84c0fcc (diff)
include only recent logfiles. Restructure internally.
Diffstat (limited to 'showlog')
-rwxr-xr-xshowlog77
1 files changed, 47 insertions, 30 deletions
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 <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