diff options
author | Jonas Smedegaard <dr@jones.dk> | 2008-02-03 22:09:07 +0000 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2008-02-03 22:09:07 +0000 |
commit | 31a2f897cfd72618879f348b9c6c63b6f317d2c5 (patch) | |
tree | 7af6d11513adb3907b1af052adce88268469ad24 /localshowuserfromip | |
parent | 21f80eb17189a95f90f02af1cca52acb5bc31df5 (diff) |
Rewrite to use common localshowlogentries.
Diffstat (limited to 'localshowuserfromip')
-rwxr-xr-x | localshowuserfromip | 54 |
1 files changed, 11 insertions, 43 deletions
diff --git a/localshowuserfromip b/localshowuserfromip index 69e9122..cfd5d05 100755 --- a/localshowuserfromip +++ b/localshowuserfromip @@ -1,53 +1,21 @@ #!/bin/sh # # /usr/local/sbin/localshowuserfromip -# Copyright 2007 Jonas Smedegaard <dr@jones.dk> +# Copyright 2007-2008 Jonas Smedegaard <dr@jones.dk> # -# $Id: localshowuserfromip,v 1.3 2007-11-14 13:31:37 jonas Exp $ +# $Id: localshowuserfromip,v 1.4 2008-02-03 22:09:07 jonas Exp $ # # List recent identifiable users from some IP address # -input="${input:-user}" -output="${output:-shortline}" -logfilecount="${logfilecount:-1}" -pattern="${pattern:-user_dovecot}" +set -e -sed_longline='s/^\(.\{15\}\) [^:]*: /\1 /' -sed_time='s/^\(.\{15\}\) .*$/\1 /' +localshowlogentries "$1" \ + 'dovecot: .*: Login: .*, rip=(' \ + '), lip=' \ + 's/^\(.\{15\}\) [^:]*: \([^-]*\)-login: Login: user=</\1 (\2) /;s/>, .*$//' \ + '' \ + '' \ + 's/^.* user=<//;s/>, .*$//' -case $pattern in - user_dovecot) - # Dovecot "deliver" - egrep_before='dovecot: .*: Login: .*, rip=(' - egrep_after='), lip=' - sed_shortline='s/^\(.\{15\}\) [^:]*: \([^-]*\)-login: Login: user=</\1 (\2) /;s/>, .*$//' - sed_username='s/^.* user=<//;s/>, .*$//' - ;; - *) - echo >&2 "ERROR: unknwon pattern \"$pattern\"" - exit 1 - ;; -esac - -case $output in - shortline) - sedstring="$sed_shortline" - ;; - longline) - sedstring="$sed_longline" - ;; - username) - sedstring="$sed_msgid" - ;; - *) - echo >&2 "ERROR: unknwon output \"$output\"" - exit 1 - ;; -esac - -ip="$1" - -find /var/log -name 'syslog*' | sort -nr -t. -k3 | tail -n "$logfilecount" | xargs zcat -f \ - | egrep -- "$egrep_before$ip$egrep_after" \ - | sed "$sedstring" +exit 0 |