모든 사서함에서 메일을 비우는 cron을 어떻게 작성 하시겠습니까?


2

저는 유닉스를 처음 사용합니다.

우리는 엄청난 양의 공간을 차지하는 사서함을 가지고 있으며 30 일 동안 상자에 있던 모든 메일을 삭제하는 방법을 알아 내려고 노력 중입니다. 내가 찾은 것의 대부분은 하나의 사서함 만 처리합니다.

나는 아직이 분야에서 많은 일을하지 않았으며 어떤 도움이라도 대단히 감사하겠습니다.


명확하게하려면 30 일마다 모든 메일을 완전히 제거 하시겠습니까 (2 초 전에 도착한 메일도 삭제됨) 또는 30 일이 지난 메일 항목을 모든 메일 함에서 제거 하시겠습니까?
EightBitTony

나는 나의 잘못된 의사 소통을 봅니다. 시스템에있는 메일을 30 일 동안 제거하고 싶습니다.
N. Hanks 2016 년

다음으로, 메일이 서버에 저장되는 방법, mbox (전통적으로 모든 사람이 단일 /var/spool/mail/username파일을 가지고 있음) 또는 Maildir (모든 사람이 개별 메일 항목이 단일 파일 인 디렉토리를 가지고 있음)인지 확인할 수 있습니다. 나는 전자를 가정하고 있지만 명확한 것을 아는 것이 좋습니다. 또한 어떤 UNIX 또는 Linux 배포판입니까?
EightBitTony

전자입니다. 배포 및 시도 / 버전을 시도 할 때 두려워하는 이유는 확실하지 않다는 것입니다.
N. Hanks 2016 년

아, archivemail유용 해 보였지만 새 버전에서는 root다른 사용자의 메일 파일을 만료시킬 수 없습니다 . 한 명의 사용자에게 효과가 있다는 예가 있지만 모든 메일 파일에서 사용하고 싶습니까?
EightBitTony

답변:


2

어쩌면 root일부 보호 된 사용자를 제외한 모든 사서함 내용을 지우려면 다음과 같이 사용할 수 있습니다.

for mbox in $(ls /var/spool/mail/*|grep -v -e root -e protecteduser);do >${mbox};done

cron에서 매월 1 일에 실행되도록 예약하십시오.

crontab -e 

crontab의 끝에 다음 줄을 삽입하십시오.

0 2 1 * * /path/to/mailbox/cleaner/script 

이렇게하면 매월 첫째 날 오전 2시에 스크립트가 실행됩니다.

반면에 각 사서함에서 30 일이 지난 메일을 정리해야하는 경우 완전히 다른 방법이 필요합니다. 이것이 의도 한 경우 원래 게시물을 업데이트하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.