Menu

Script (message d'erreur) [Résolu/Fermé]

Messages postés
98
Date d'inscription
dimanche 25 octobre 2009
Statut
Membre
Dernière intervention
25 décembre 2017
- - Dernière réponse : Exileur
Messages postés
1349
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 mai 2019
- 26 déc. 2017 à 14:03
Bonjour,

j'ai un script sur lequel je travailles depuis mais sans jusqu'a présent avoir trouvé une solution.
il a pour principal but d'analyser les logs des users qui se sont connectés à un serveur linux et de ressortir les robots qui se sont logés comme étant des users ( Partant du principe que Si en 1 S on a : user loged in+user modified password + user logged off = alors il s'agit d'un robot (bot) et je dois dans mon script listés tous ceux-ci.Cnf : https://pastebin.com/Fy9pgHa8

Mon probleme c'est que toujours dans mes recherches je me suis appercu que une personne avait déjà crée un script à ce sujet dont je veux m'en inspirer ; Mais quand j'executes le script https://pastebin.com/7V6Msxbp que voici en question j'ai des messages d'erreur suivant "

AvenirTec@Gilles-Etame /cygdrive/c/Users/AvenirTec/Desktop
$ ./bot.sh
./bot.sh: ligne 15: erreur de syntaxe près du symbole inattendu « $'\r' »
'/bot.sh: ligne 15: ` ((rnum++)) "

Rassurez vous qu"en passant par le terminal de Centos ou meme celui de l'emulateur Cygwig j'ai le meme message d'erreur.
Je ne suis qu'un débutant sur Unix donc aidez moi svp!!!!


Cdlt;




Afficher la suite 

2 réponses

Messages postés
1349
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 mai 2019
101
0
Merci
Saloute,

Aller, c'est nowel :


#!/bin/bash

if [ $# -eq 0 ]
then
echo "Vous devez indiquer un fichier à parser : PARSER.bash file.log"
exit
fi

if ! [ -f $1 ]
then
echo "le fichier $(pwd)/$1 n'existe pas."
exit
else
FPATH="$(pwd)/$1"
FNAME=$1
fi

touch tmpuserlist
RNUM=1
while read LINE
do
if [[ $LINE =~ "user logged in" ]]
then
USER=$(head -n $RNUM $FNAME| tail -n1 | awk -F '|' '{print $3}')
TSTAMP=$(head -n $RNUM $FNAME | tail -n1 | awk -F '|' '{print $1}')
NEXTLINE=$(head -n $((RNUM + 1)) $FNAME | tail -n1)
NEXTLINE2=$(head -n $((RNUM + 2)) $FNAME | tail -n1)

if [[ "$NEXTLINE" == *"$USER"* && "$NEXTLINE" == *"user changed password"* && "$NEXTLINE" == *"$TSTAMP"* && "$NEXTLINE2" == *"$USER"* && "$NEXTLINE2" == *"user logged off"* && "$NEXTLINE2" == *"$TSTAMP"* ]]
then
echo $USER >> tmpuserlist
fi
fi
((RNUM++))
done < $FNAME
cat tmpuserlist | sort | uniq
rm -f tmpuserlist


En revanche, la connexion, changement de mdp etc a l'air bien cyclique. Pas sure que ce script fonctionne si plusieurs utilisateurs ce connecte en méme temps, ce deconnecte a des heures differentes etc... (nextline & nextline2) ça peut vite faire peu :)

Joyeux Noël à tous, des bisous.
Exileur
Messages postés
1349
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 mai 2019
101 > Utilisateur anonyme -
Autant pour moi :

BOURNE SHELL (SH) != BOURNE AGAIN SHELL (BASH)
zipe31
Messages postés
36521
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 mai 2019
5785 > Exileur
Messages postés
1349
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 mai 2019
-
Sans compter que sous Debian et dérivés : sh != /bin/sh ;-(
$ readlink -f /bin/sh
/bin/dash

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/usr/bin/tmux
Exileur
Messages postés
1349
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 mai 2019
101 > zipe31
Messages postés
36521
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 mai 2019
-
Zipe31! Vite !
sudo apt install zsh
!!! :D

Merci de ta contribution :)
KEGA
Messages postés
98
Date d'inscription
dimanche 25 octobre 2009
Statut
Membre
Dernière intervention
25 décembre 2017
7 -
@Exileur, je t'assures que c'est l'un des meilleurs cadeaux que j'ai recu en ce jour.
Je te dis infiniment merci pour ta prompte réaction.Ton programme fonctionne parfaitement je
l'ai juste amélioré dans la forme.
Merci encore et surtout Merci!!!!!!!
Ca me plairait vraimment d'echanger avec toi (Biensur si c'est possible en ib pour certains projets);

Cdlt.
Exileur
Messages postés
1349
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
9 mai 2019
101 -
Hesite pas a re-poster sur CCM si tu as d'autre questions.
Je garde un oeil sur le forum linux ;)

Eventuellement tu peux nous montrer le code que tu as en finalité ? (avec tes modifs)
A plus
-1
Merci
salut,

tu as écrit ton script sur W$ ?
zipe31
Messages postés
36521
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 mai 2019
5785 > KEGA
Messages postés
98
Date d'inscription
dimanche 25 octobre 2009
Statut
Membre
Dernière intervention
25 décembre 2017
-
Et d'un ton script est bourré de retour chariot à la sauce Windows ;-(
Et de deux, s'il contient vraiment tout ça, pas étonnant qu'il ne marche pas ;-(
KEGA
Messages postés
98
Date d'inscription
dimanche 25 octobre 2009
Statut
Membre
Dernière intervention
25 décembre 2017
7 -
SVP Que quelqu'un essaye aussi de me compiler voir executer le programme en question que voici :

$ cat file.log
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:49 +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|fxsciulmla| - |user logged in| -
Mon, 22 Aug 2016 13:19:19 +0200|178.56.66.225|fxsciulmla| - |user changed password| -
Mon, 22 Aug 2016 13:19:19 +0200|178.56.66.225|fxsciulmla| - |user logged off| -
Mon, 22 Aug 2016 13:20:42 +0200|178.57.67.225|faaaa0a1111| - |user logged in| -
$ cat parser
#!/bin/bash
fname=$1
rnum=1
while read line
do
if [[ $line =~ "user logged in" ]]; then
user=`head -n $rnum $fname | tail -n1 | awk -F'|' '{print $3}'`
tstamp=`head -n $rnum $fname | tail -n1 | awk -F'|' '{print $1}'`
nextline=`head -n $[$rnum+1] $fname | tail -n1`
nextline2=`head -n $[$rnum+2] $fname | tail -n1`
if [[ $nextline =~ $user && $nextline =~ "user changed password" && $nextline =~ "$tstamp" && $nextline2 =~ $user && $nextline2 =~ "user logged off" && $nextline2 =~ "$tstamp" ]]; then
echo $user >> tmpuserlist
fi
fi
((rnum++))
done <$fname
cat tmpuserlist | sort | uniq
rm -f tmpuserlist
./parser file.log
erdsfsdfsdf
fxsciaqulmlk
fxsciulmla
terdsfsdfsdf
$




Moi je n'y arrive pas!!
Utilisateur anonyme -
tant que tu n'utiliseras pas les balises CODES (le bouton
<>
) en séparant les différents éléments (affichage des données, contenu du script, exécution...) je n'y toucherai pas.

« Moi je n'y arrive pas!! »
que se passe-t-il ? un message d'erreur ?

PS : t'as appris à coder quand, il y a plus de vingt ans ?
il y a longtemps qu'on n'utilise plus
` `
, et
$[ ]
.
KEGA
Messages postés
98
Date d'inscription
dimanche 25 octobre 2009
Statut
Membre
Dernière intervention
25 décembre 2017
7 -
"PS : t'as appris à coder quand, il y a plus de vingt ans ?
il y a longtemps qu'on n'utilise plus ` `, et $[ ]."
Merci pour ta réponse.Effectivement pour te réponse j'ai moins de 10 jours dans le codage mais rassures toi que j'appréhende vite les choses et je ferais de même pour ce domaine dans lequel je veux exceller now (Car à La base je ne suis pas un programmeur).Merçi encore pour votre aide
Utilisateur anonyme -
"à la base", personne n'est programmeur. ;)
ils ont tous appris d'abord le B-A-BA.