본문 바로가기

Compute™/Linux

[Linux] qmail queue 관리 스크립트 - qmHandle

반응형
SMALL

* qmail 메일 서버 운영 시에 스팸이나 잘못 된 메일 주소로 인해 mail queue에 쌓이는 메일들을

말끔히 삭제하는 스크립트 툴이 있다.

바로 qmHandle

 

사용법은 간단하다.

  -a       : try to send queued messages now (qmail must be running)
  -l       : list message queues
  -s       : show some statistics
  -D       : delete all messages in the queue (local and remote)

주로 사용하는 옵션은 위 4가지 정도 이며

-a 는 큐에 쌓인 메일을 강제 발송 처리

-l 은 큐에 쌓인 메일 리스트 확인

-s 는 현재 큐에 상태 => qmail-qstat 명령과 같다

-D 큐에 쌓인 메일 정리

 

 

1. 첨부 파일을 다운 로드 받아 압축을 해제 한다. or http://sourceforge.net/projects/qmhandle/ 에 직접 들어가 다운로드 가능.

 

2. tar -xvz qmhandle-1.3.2.tar.gz

 

-rw-rw-r--  1 root root 18009 Jul 11  2007 GPL
-rw-rw-r--  1 root root  4115 Jul 11  2007 HISTORY
-rwxrwxr-x  1 root root 22240 Sep 28 10:49 qmHandle
-rw-rw-r--  1 root root  5037 Jul 11  2007 README 

 

3. 컴파일이나  기타 추가 작업 없이 바로 사용 가능

./qmHandle -s

 

 

- 삭제 Error 발생 시 -

./qmHandle -D 

 Calling system script to terminate qmail...
Can't exec "/usr/local/bin/svc": No such file or directory at ./qmHandle
        line 192 (#1)
    (W exec) A system(), exec(), or piped open call could not execute the
    named program for the indicated reason.  Typical reasons include: the
    permissions were wrong on the file, the file wasn't found in
    $ENV{PATH}, the executable in question was compiled for another
    architecture, or the #! line in a script points to an interpreter that
    can't be run for similar reasons.  (Or maybe your system doesn't support
    #! at all.)

 

* 기본적으로 qmHandle 을 통해 queue에 쌓인 메일 정리 시에는 qmail의 종료 및 재시작 이 필요하다.

따라서 vi 로 qmHandle 파일을 열어 각각 메일서버 세팅에 맞게 수정해 준다. (종료 방법과 시작 방법을 명시)

 

수정해 줄 부분은

my ($stopqmail) = '/usr/local/bin/svc -d /service/qmail-deliver';
my ($startqmail) = '/usr/local/bin/svc -u /service/qmail-deliver';

위 부분을 수정 한다.

ex)

my ($stopqmail) = '/etc/init.d/qmail stop';
my ($startqmail) = '/etc/init.d/qmail start';

 

ex)

my ($stopqmail) = '/usr/local/etc/rc.d/qmail.sh stop';
my ($startqmail) = '/usr/local/etc/rc.d/qmail.sh start';

 

수정 후

./qmHandle -D 

정상적으로 삭제 된다.

말끔한 큐의 상태.

 

 [root@mail qmhandle]# ./qmHandle -s
Total messages: 0
Messages with local recipients: 0
Messages with remote recipients: 0
Messages with bounces: 0
Messages in preprocess: 0

 

 

 

qmhandle-1.3.2.tar.gz

반응형
LIST