#!/bin/sh LOG_DIR=/var/log TAC="tail -r" usage() { cat <&2 usage: $(basename $0) [-r] [-p] options: -r output lines in reverse order -p view output with pager EOF exit 1 } while getopts ":rp" c do case "$c" in r) r_flag=1;; p) p_flag=1;; :|'?') usage;; esac done cmd='(for f in $(ls -r ${LOG_DIR}/maillog*); do case "$f" in *.gz) zcat "$f";; *) cat "$f";; esac done)' [ -n "$r_flag" ] && cmd="$cmd | $TAC" cmd="$cmd | sed -n \ -e '/reject=.*njabl\.org/p' \ -e '/reject=.*bl\.spamcop\.net/p' \ -e '/reject=.*relays\.ordb\.org/p' \ -e '/reject=.*proxies\.blackholes\.easynet\.nl/p' \ -e '/reject=.*rfc-ignorant\.org/p' \ -e '/reject=.*mail from spammers/p' \ -e '/reject=.*Relaying denied/p'" [ -n "$p_flag" ] && cmd="$cmd | ${PAGER:-more}" eval "$cmd" .