0

通過するメールログファイルがたくさんあります。mxサーバーでソートされた、送信先のすべての人を見つけようとしています。

これにより、MX サーバーのリストが返されます。

grep 'mx' /my/log/file | cut -d , -f 11 | cut -d ' ' -f 1 | sort | uniq

例の出力:

mx3.hotmail.com
mx2.hotmail.com
mx1.hotmail.com
mx4.hotmail.com

これにより、その MX サーバーから送信されたドメイン (この場合はすべての hotmail) が取得されます。

grep 'mx*.hotmail.com' /my/log/file | cut -d , -f 6 | cut -d '@' -f 2 | sort | uniq

例の出力:

hotmail.com
hotmail.com.au

あるクエリの結果を別のクエリに直接プラグインできるように、これをどのようにスクリプト化できますか? pythonに慣れているのでタグ付けしました。

4

2 に答える 2

0

これが私たちがやったことです:

cat /my/log/file | cut -d "," -f 11,6 | cut -d '@' -f 2 | cut -d ' ' -f 1 | egrep '(([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}),(([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6})' | cut -d "," -f 2,1 | sort | uniq > /tmp/mxservers2.txt

結果は次のようになります。

hotmail.com,mx1.hotmail.com

参考までに、ログ エントリは次のようになります。

d,2012-07-17 07:09:29+0000,2012-07-17 07:09:15+0000,,bounce@address.net,recipient@example.net,,relayed,2.0.0 (success),smtp;250 2.0.0 bK9F1j04M0vJLGl06K9VnA mail accepted for delivery,mx.example.net (0.0.0.0),,smtp,(127.0.0.1),smtp,sending IP,receiving IP,"ENHANCEDSTATUSCODES,8BITMIME,SIZE,STARTTLS",18704,sending.domain.com,message.streaming,,FALSE,=?utf-8?Q?Subject?= <sender@example2.net>

完璧ではありませんが、仕事は完了しました。

于 2012-07-19T11:49:52.350 に答える
0

mx*.hotmail.comm.hotmail.commx.hotmail.commxx.hotmail.comなどと一致する必要があります。mx.*\.hotmail\.com

ある bash コマンドの文字列を別の bash コマンドで使用するには、$(). 例えばecho abc$(echo def)ghi

逆引用符も使用できますが、逆引用符はネストしません。

于 2012-07-17T16:19:49.557 に答える