
drwxr-xr-x 2 smmsp smmsp 4.0K May 6 23:31 mqueue
drwxrws--- 2 smmsp smmsp 29M May 8 10:40 mqueue-client
보시다시피 mqueue-client
29MB의 전송되지 않은 메일이 가득 차 있습니다. 이는 실패하는 localhost로 메일을 보내는 내부 기능에서 발생한 것 같습니다.
대기열을 지우려고 여러 번 시도했지만 성공하지 못했습니다. 결과적으로 상당한 CPU 리소스를 사용하는 프로세스가 발생합니다.
16287 smmsp 20 0 50212 44m 2416 R 85 4.4 965:35.45 sendmail-msp
프로세스를 종료하고, sendmail 서비스를 중지하고, mqueue-client의 내용을 삭제하고, 심지어 smmsp 사용자로 전환해 보았습니다. 그러나 아무도 효과가 없었습니다. rm
메일을 제거하려고 하면 멈춥니다.
이 대기열을 비우려면 어떻게 해야 합니까?
이 작업을 마치면 모든 것을 Postfix로 옮길 것입니다.
답변1
댓글에서 Janne이 제안한 대로 내 메일을 살펴 syslog
보니 오류를 보내지 못한 많은 메일이 지연되어 mqueue-client
폴더에 쌓여 있는 것을 발견했습니다.
좀 파헤쳐본 결과크론탭완료/공지/경고/오류 시 메일 루트로 설정됩니다. 발행 하고 구성 상단에 crontab -e
추가하면 더 이상 메일이 발송되지 않으며 문제가 해결되었습니다!MAILTO=""
mqueue-client
이제 이 Bash 스크립트를 사용하여 150만 개 정도의 잘못된 이메일을 삭제하겠습니다 .
#!/usr/bin/env bash
cd mqueue-client
deleted=0
for i in `ls`
do
rm -f $i
percentage=$(bc <<< "scale=2; ($deleted / 1035435) * 100")
((deleted++))
echo "Deleted $i. Files deleted $deleted. $percentage% complete."
done
다음을 사용하여 /var/spool에서 실행합니다../filename
업데이트
불행하게도 이 스크립트를 밤새도록 실행한 후에도 메일 대기열은 크게 줄어들지 않았습니다. 이는 대기열을 지우도록 설정된 CRON을 실행하는 분을 비활성화하지 않았지만 백로그가 증가했기 때문입니다. 이제 이 기능이 비활성화되었으면 모든 것이 지워지기를 바랍니다.