#!/bin/sh # Clean mail queue from mail, addressed to some point # BSD License. Copyright (C) by Rashid N. "CityCat" Achilov # $Id: cleanqueue,v 1.1.1.1 2008/01/20 21:10:58 shelton Exp $ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin mqueue="/var/spool/mqueue" # Check on presence address if [ $# -lt 1 ]; then echo "Usage: cleanqueue " exit 5 fi # Check on permissions to clean queue myid=`id -u` if [ $myid -ne 0 ]; then echo "Only root can clean mail queue, exiting..." exit 10 fi stopped=0 # Check on run sendmail and stop, when running cd /etc/rc.d _run=`./sendmail status` if [ ${#_run} -ne 0 ]; then ./sendmail stop stopped=1 fi # Clean command files with mail, addressed by selected domain cd $mqueue delcfiles=`grep $1 * | awk 'BEGIN {FS=":"} {print $1}'` for _delfile in $delcfiles do rm -f $_delfile done echo "Command files cleaned" # Start sendmail again - data files we can delete ever sendmail working if [ $stopped -eq 1 ]; then /etc/rc.d/sendmail start fi # Last step - clean data files, which related with command files, whcih were # already deleted alldfiles=`ls d*` for _onedata in $alldfiles do _onedfile=`echo $_onedata | sed -e "s+d+q+"` # Check on presence data file if [ ! -e $_onedfile ]; then rm -f $_onedata fi done echo "Data files cleaned"