私は、ログファイル(var/log/auth)を解析することによって、各ipからのログイン試行を数える方法を探します。私はすでにこれを行う方法を見つけましたが、それは醜いですし、ファイル操作のために多くの時間が必要です。bashスクリプト内のログファイルからのログインに使用されるipのカウント方法は?
これは変数でのみ実行できませんでしたか?私が欲しいのはこれは私が欲しいいけないものです...カウント=
感謝
IPなどの一覧です:)ログファイルから
for ip in $(cat /var/log/auth.log | grep sshd | grep Failed | grep -v invalid | awk '{ print $11; }'); do
if [ -e "log/$ip" ]; then
file="log/$ip"
counter=$(cat "$file")
counter=$[$counter +1]
echo $counter > log/$ip
else
echo 1 >> log/$ip
fi
done
サンプルは
Jul 30 21:07:30 Server sshd[20895]: Failed password for root from 58.242.83.20 port 41448 ssh2
Jul 30 21:07:31 Server sshd[20897]: Failed password for root from 61.177.172.44 port 28603 ssh2
です
私が欲しいものは何かです。 58.242.83.20 = 1932 61.177.172.44 = 3
「wc -l」はどうしますか? ;-) 'NB_IPS = $(cat /var/log/auth.log | grep sshd | grep失敗| grep -v無効| awk '(印刷$ 11;} | wc -l)' – Fabien
サンプル入力とあなたの望みを追加してくださいあなたの質問にそのサンプル入力のための出力。 – Cyrus
wc -lステートメントの問題は、異なるipsがあり、すべてのipsを抽出してログイン試行をカウントしたいということです。 –