내 postfix 메일 대기열에 메시지가 있는 모든 스크립트를 어떻게 찾나요? 이 서버는 스팸을 보내고 있으며 제가 이를 확인했지만 포함된 스크립트가 누락되지 않았는지 확인하고 싶습니다. PHP는 모든 이메일에 X-PHP-Originating-Script 헤더를 배치하도록 구성되어 있습니다. 이러한 헤더를 모두 찾기 위해 각 이메일을 반복해서 검색할 수 있다면 관련 스크립트를 모두 찾을 수 있을 것입니다.
답변1
이 oneliner는 mailq 출력을 수집합니다(저는 종종 이를 파일로 전송한 다음 성능에 미치는 영향을 줄이면서 조정할 수 있도록 해당 파일에 대해 스크립트를 실행합니다). 그런 다음 먼저 cut 명령을 사용하여 올바른 필드를 식별한 다음 egrep을 사용하여 정리합니다(빈 줄, *로 끝나는 관련 없는 ID 및 ( 또는 -)로 시작하는 줄을 제거하고 메시지 ID만 잘라냅니다. xargs는 각 ID를 잘라냅니다. 헤더를 포함한 콘텐츠를 출력하기 위해 postcat에 넣은 다음 헤더를 찾고 uniq 명령이 제대로 작동하도록 정렬한 다음 uniq를 사용하여 각 스크립트의 인스턴스 하나를 찾습니다.
mailq |cut -f 1 -d " "|egrep -v "^\(|^$|^-|\*" |xargs postcat -q |grep "X-PHP-Originating-Script"|sort|uniq