私のpostfixメールキューにメッセージを含むすべてのスクリプトをどのように見つけますか?このサーバーはスパムを送信しており、これを確認しましたが、含まれているスクリプトが欠落していないことを確認したいと思います。 PHPは、すべての電子メールにX-PHP-Originating-Scriptヘッダーを配置するように設定されています。これらのヘッダーをすべて見つけるために各電子メールを繰り返し検索できる場合は、関連するすべてのスクリプトを見つけることができます。
答え1
このオネライナーはmailq出力を収集します(私はしばしばそれをファイルに転送し、パフォーマンスへの影響を減らしながら調整できるようにそのファイルに対してスクリプトを実行します)。その後、最初にcutコマンドを使用して正しいフィールドを識別し、次にegrepを使用してクリーンアップします(空白行、*で終わる無関係なID、および(または - )で始まる行を削除し、メッセージIDのみを切り捨てます。各IDを切り取ります。ヘッダーを含むコンテンツを出力するためにpostcatに入れ、ヘッダーを見つけてuniqコマンドが正しく機能するようにソートし、uniqを使用して各スクリプトの1つのインスタンスを見つけます。
mailq |cut -f 1 -d " "|egrep -v "^\(|^$|^-|\*" |xargs postcat -q |grep "X-PHP-Originating-Script"|sort|uniq