次のようなログエントリの行を含む文字列がbashスクリプトにあります。
Oct 24 12:37:45 10.224.0.2/10.224.0.2 14671: Oct 24 2012 12:37:44.583 BST: %SEC_LOGIN-4-LOGIN_FAILED: Login failed [user: root] [Source: 10.224.0.58] [localport: 22] [Reason: Login Authentication Failed] at 12:37:44 BST Wed Oct 24 2012
明確にするために; そこにリストされている最初のIP「10.224.0.2」は、ログイン試行に失敗した、このログエントリを送信したマシンでした。ログエントリ「10.224.0.58」の2番目のIPアドレスにあるマシンから、誰かがログインしようとして失敗しました。
IPアドレス「10.224.0.2」の最初の出現をそのマシンのホスト名に置き換えたいと思います。現在、同じ情報を2回持つことは役に立たない「IPADDRESS/IPADDRESS」です。したがって、ここではgrep
、最初のIPを(または同様に)出力してから、コマンドのようなものに渡してhost
、リバースホストを取得し、ログ出力で置き換えます。
2番目のIP「10.224.0.58」についてもこれを繰り返したいと思います。このIPを見つけて、ホスト名に置き換えたいのですが。
ただし、これら2つの特定のIPアドレスだけでなく、任意のIPアドレスです。したがって、3つの終止符'。'で区切られた1から3までの4つの整数を検索したいと思います。
正規表現はここで前進するのでしょうか、それとも問題を複雑にしすぎているのでしょうか。
どうもありがとう。