1行のコマンドで問題のあるIPリストを一覧表示しようとしていますが、最後の部分を実行する方法がわかりません。誰かが正しい方向を伝えることができます。
cat /var/log/syslog* | grep "SRC=" | cut -d " " -f 14 | sort | uniq -c | sort -n -r
英語で...これはすべてのsyslogファイル(また、回転したsyslogファイル)を印刷し、ファイアウォールエントリを検索し、SRC値(IP)を取得して計算し、最も高いものから低いものまでリストする必要があります。今私が望むのは最初の5つに制限することです。このタスクを実行できるコマンドを知っている人はいますか?
システムログのエントリの例:
1月11日 12:01:52 xxxx カーネル: [47261.722647] 無効な入力パケット: IN=eth0 OUT= MAC=44:8a:5b:a0:24:eb:00:31:46:0d:21:e8: 08 : 00 SRC=xx.xx.xx.xx DST=xx.xx.xx.xx LEN=40 TOS=0x00 PREC=0x00 TTL=239 ID=33840 PROTO=TCP SPT=1024 DPT=22151 WINDOW=1024 0x00 SYNURGP =0
このエントリは私のカスタムファイアウォールによって作成され、この質問の一部ではありません。
コマンド出力例:
47 SRC=13.82.59.79 2 SRC=77.72.82.145 2 SRC=213.157.51.11 2 SRC=159.203.72.216 1 SRC=77.72.85.15 1 SRC=77.72.85.10 1 SRC=77.72.83.238 1 SRC=77.221.1.237 1 SRC=222.186.172.43 1 SRC=216.170.126.109 1 SRC=191.101.167.253 1 SRC=190.198.183.234 1 SRC=173.254.247.206 1 SRC=164.52.13.58 1 SRC=141.212.122.145 1 SRC=125.78.165.42 1 SRC=118.139.177.119 1 SRC=111.75.222.141 1 SRC=103.30.40.9
ベストアンサー1
awk '/SRC=/ { print $13 }' /var/log/syslog* | sort | uniq -c | sort -n -r | head -n 5
これにより、元のパイプラインからcatcat、grelpping、およびcutが削除され、最終的に上位5つの結果が得られますawk
。head -n 5