크론 작업으로 인해 Linux 서버에서 1백만 개의 이메일을 생성했습니다. 이 cron 메시지는 cron 작업 실행과 관련된 문제를 해결하고 찾는 데 유용하기 때문에 메시지를 전부 삭제하고 싶지는 않습니다. 그래서 한 달 분량의 이메일을 보관하고 나머지는 삭제해야 합니다.
답변1
mail
다양한 명령 세트를 가진 다양한 명령이 있습니다 . POSIX 표준화mailx
주문하다.
일반적으로 사서함에는 받은 순서대로 이메일이 들어 있습니다. 따라서 오래된 메시지를 삭제하려면 일반적으로 숫자가 낮은 이메일을 삭제합니다. 유사한 명령을 사용하여 메시지 범위를 삭제할 수 있습니다 d 1-42
(처음 42개 메시지 삭제).
좀 더 제어하고 싶다면 추천합니다바보, 단순한 명령보다 더 많은 제어 기능을 제공하는 명령줄 이메일 클라이언트입니다 mail
. Mutt에는 텍스트 모드 인터페이스가 있으며 스크립트로 작성할 수도 있습니다. Mutt에서는 다음을 사용할 수 있습니다.주문하다 D
삭제할 메시지를 표시하고 입력하세요.무늬 ~d ->1m
1개월이 지난 메시지를 선택하세요. 삭제하려는 메시지 목록이 만족스러우면 x
삭제 표시된 메시지 삭제를 입력합니다.
답변2
많은 검색 끝에 찾았습니다.아카이브 메일오래된 이메일을 지우는 데 사용하세요.
구문은 다음과 같습니다.
archivemail -d 30 --delete <path-to-mailbox>
(일반적으로 $MAIL
로컬 사서함 위치를 정의하고 echo $MAIL
확인해보세요).
(-n
--시운전) 옵션.
답변3
나는 한동안 같은 문제로 어려움을 겪고 있으며 내가 관리하고 있는 메일 서버에 대해 간단한 답변을 찾기 위해 인터넷 검색이 예상보다 어렵습니다.
파일 시스템을 자주 채우고 다음 cron 작업을 실행하게 되는 단일 사용자의 편지함에서 메시지를 삭제해야 합니다.
18 5 * * * /usr/bin/mutt -f /var/spool/mail/developer -e "push D~d>7d<enter>qy<enter>"
또는 매일 05:18에 파일(이 경우 디렉토리) /var/spool/mail/developer에서 mutt를 실행하고, mutt가 시작될 때까지 대기(push)하고, 삭제 표시(D) 패턴 일치(~) 날짜(d) ) 7일 이상(>7d), 명령을 종료한 후 종료(q)하고 삭제 확인(y)