web-dev-qa-db-ja.com

smtpを使用してメールを送信しようとしているプロセスを見つけるにはどうすればよいですか?

以前、私は 誰(どのプロセス)がcurlを呼び出しているのか と尋ねましたが、基本的にcurl binaryをシェルに置き換えた非常に良い回答( 特にこの回答 )を得ましたcurlへの各呼び出しをログに記録し、名前が変更されたcurlを呼び出し、パラメーターを渡すスクリプト。

今、私は再び同じような状況にいます、誰かがsmtpを使用しているかどうかはわかりますが、それがどのプロセスであるかわかりませんか?私はそれをcronジョブで使用していることを知っていますが、(ファイアウォールから受信したアラートによって)smtpがインターネットに接続しようとすることがあります(私が間違っていない場合は、Google SMTPサーバー)。

誰が/どのプロセスがsmtpを使用しているかを知るにはどうすればよいですか?

3
Ali

MacOSで動作するかどうかはわかりませんが、Linuxでは次のようにできます。

$ Sudo netstat -ntop

次のような出力を取得します:

tcp        0      0 192.168.1.21:51150      10.5.4.3:443       ESTABLISHED 184/firefox    off (0.00/0/0)

重要な部分は184/firefoxです-これはそれぞれPIDとプロセス名です。

トリックは、これを実際にキャッチすることです。定期的に発生する場合は、上記のコマンドをループで実行し、トラップするポートに対してgrepを実行します。それ以外の場合、ファイアウォールを使用して実行できるいくつかの魔法があるかもしれませんが、それは私の知識を超えています。

3
bstpierre