sendmail 에서 주기적으로 오래된 메일을 삭제 하고 싶습니다.

환이의 이미지

sendmail 을 돌리는 서버가 있는데

주기적으로 오래된 메일을 삭제 하고 싶습니다

대략 한달 주기로 삭제 한다 했을때 특별히 쓰일수 있는 옵션같은게 존재 하나요?

여러방면으로 찾다가 안되서 kldp 에 도움을 요청해봅니다 ㅡㅜ

keizie의 이미지

SMTP로 보낼 메일이 오래 정체되어 있는 경우라면 (시스템에 이상이 있지 않고서야 그럴 일은 없겠지만)
큐 파일이 쌓이는 디렉토리에 find -mtime 정도로 접근해서 지워버리면 될 겁니다.
큐 관리하는 툴이 따로 있었던 것도 같은데 기억이 안 나서 패스합니다. -_-;

받은 메일을 관리하는 거라면 mbox 형식의 경우 파일 하나짜리라서 파일 단위 접근은 안 되고
(Maildir 방식도 여러 개로 쪼개져 있어서 파일 단위로 접근하면 안 되겠군요)
특화된 도구가 많이 나와 있습니다. 우분투에서 apt-cache search mbox 해보니
mail-expire - Utility to extract outdated messages from mbox files 라는 게 보이네요.

환이의 이미지

빠른답변!! 감사합니다

받은 메일 입니다. 계정들이 몇개 있는데 한 두어달 확인안하는 경우가 생기면

몇십기가로 뿔어날때가 있어서 미연에 방지하려구요

mbox 관련으로 검색 해봐야겠군요~!

yundorri의 이미지

좀 무식한가요?
저는 아예 쥑여버립니다만...

for FILE in /var/spool/clientmqueue/[dq]f*; 
do
      echo -ne \\r"Deleting $FILE... "; 
      rm $FILE -f; 
      echo -n ok; 
done;
 
echo
환이의 이미지

받은 메일이 유저별 파일로 각각 존재 하는데

그거 지워버리면

메일이 다 날라가는거 아닌가요?