Добрый день. Второй день копаюсь со скриптом, не могу понять, как сделать условие в условии.
Есть лог файл, в котором логируются действия пользователей, туда заходят боты, бот выполняет последовательность задач за одну секунду, то есть зайти, сменить пароль, выйти.
Я пытаюсь написать скрипт который определит бота, но вот столкнулся с такой проблемой, как вписать условие в условие, так нельзя делать в баше? Если да, то может что-то посоветуете, как реализовать такой скрипт?
Вот то что я сделал:
#!/bin/bash
read -p "Please enter filename: " filename;
count=`cat $filename | awk {'print $6'} | cut -c 21- | rev | cut -c 2- | rev | uniq | wc -l`
allusers=`cat $filename | awk {'print $6'} | cut -c 21- | rev | cut -c 2- | rev | uniq`
action=`cat $filename | awk {'print $8,$9,$10'} | cut -c 2- | rev | cut -c 2- | rev`
#countact=`cat $filename | grep "$username" |awk {'print $6'} | cut -c 21- | rev | cut -c 2- | rev | wc -l`
for ((i=1; i<="$count" ; i++));
do
username=`cat $filename | awk {'print $6'} | cut -c 21- | rev | cut -c 2- | rev | uniq | sed -n "$i"p`
firstop=`cat $filename| grep "$username" | awk '{print $5}' | head -n1 | cut -c 7-8`
lastop=`cat $filename | grep "$username" | awk '{print $5}' | tail -1 | cut -c 7-8`
countact=`cat $filename | grep "$username" |awk {'print $6'} | cut -c 21- | rev | cut -c 2- | rev | wc -l`
#####ACTIONS
action1=`cat $filename | grep "$username" |awk {'print $8,$9,$10'} | cut -c 2- | rev | cut -c 2- | rev | sed -n 1p`
action2=`cat $filename | grep "$username" |awk {'print $8,$9,$10'} | cut -c 2- | rev | cut -c 2- | rev | sed -n 2p`
action3=`cat $filename | grep "$username" |awk {'print $8,$9,$10'} | cut -c 2- | rev | cut -c 2- | rev | sed -n 3p`
act1="user logged in"
act2="user changed password"
act3="user logged off"
if [ $countact = 3 ]; then
if [ $firstop = $lastop ]; then
if [ $action1 = $act1 ]; then
if [ $action2 = $act2 ]; then
if [ $action3 = $act3 ]; then
echo $username "- BOT"
fi
fi
fi
fi
else
echo $username "- NOT BOT"
fi
done
Вот кусок лога:
Mon, 22 Aug 2016 13:15:39 +0200|178.57.66.225|fxsciaqulmlk| - |user logged in| -
Mon, 22 Aug 2016 13:15:39 +0200|178.57.66.225|fxsciaqulmlk| - |user changed password| -
Mon, 22 Aug 2016 13:15:39 +0200|178.57.66.225|fxsciaqulmlk| - |user logged off| -
Mon, 22 Aug 2016 13:15:42 +0200|178.57.66.225|faaaaaa11111| - |user logged in| -
Mon, 22 Aug 2016 13:15:40 +0200|178.57.66.215|terdsfsdfsdf| - |user logged in| -
Mon, 22 Aug 2016 13:15:49 +0200|178.57.66.215|terdsfsdfsdf| - |user changed password| -
Mon, 22 Aug 2016 13:15:49 +0200|178.57.66.215|terdsfsdfsdf| - |user logged off| -
Mon, 22 Aug 2016 13:15:59 +0200|178.57.66.205|erdsfsdfsdf| - |user logged in| -
Mon, 22 Aug 2016 13:15:59 +0200|178.57.66.205|erdsfsdfsdf| - |user logged in| -
Mon, 22 Aug 2016 13:15:59 +0200|178.57.66.205|erdsfsdfsdf| - |user changed password| -
Mon, 22 Aug 2016 13:15:59 +0200|178.57.66.205|erdsfsdfsdf| - |user logged off| -
Mon, 22 Aug 2016 13:17:50 +0200|178.57.66.205|abcbbabab| - |user logged in| -
Mon, 22 Aug 2016 13:17:50 +0200|178.57.66.205|abcbbabab| - |user changed password| -
Mon, 22 Aug 2016 13:17:50 +0200|178.57.66.205|abcbbabab| - |user changed profile| -
Mon, 22 Aug 2016 13:17:50 +0200|178.57.66.205|abcbbabab| - |user logged off| -
Mon, 22 Aug 2016 13:19:19 +0200|178.56.66.225|fxsciaqulmla| - |user logged in| -
Mon, 22 Aug 2016 13:19:19 +0200|178.56.66.225|fxsciaqulmla| - |user changed password| -
Mon, 22 Aug 2016 13:19:19 +0200|178.56.66.225|fxsciaqulmla| - |user logged off| -
Mon, 22 Aug 2016 13:20:42 +0200|178.57.67.225|faaaa0a11111| - |user logged in| -