Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/04/2007, 14h40   #1
Invité régulier
 
Étudiant
Inscription : avril 2007
Messages : 17
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 17
Points : 6
Points : 6
Par défaut Opération sur un fichier de log

Bonjour,

J'aimerais pouvoir faire quelques opérations sur un fichier de logs. Je récupère déjà les connections acceptés, et les déconnexions dans deux fichiers séparés :

Code :
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
if
	[ ! -e /var/log/sshd/sshd_connect ]
then
	mkfifo /var/log/sshd/sshd_connect
fi
while
	[ -e /var/log/sshd/sshd_connect ]
do
	cat /var/log/sshd/sshd | grep "opened">>/var/log/sshd/sshd_connect 
done
Seulement voilà, ce script se lance toutes les 5 minutes et je me retrouve avec plusieurs fois la même ligne. Comment faire pour dire à grep de n'écrire dans le fichier que si la ligne est différente de celles déjà présentes?

J'aimerais également récupérer le temps d'une connexion, et l'adresse IP de la machine se connectant. Mais comment faire une soustraction avec l'heure?

Pour vous aider, voici un extrait du fichier de logs :

Citation:
Apr 24 11:33:10 serveur sshd[367]: pam_unix(sshd:session): session opened for user root by root(uid=0)
Apr 24 11:36:55 serveur sshd[413]: Accepted password for root from 10.4.12.2 port 1513 ssh2
Apr 24 11:36:55 serveur sshd[416]: pam_unix(sshd:session): session opened for user root by root(uid=0)
Apr 24 11:48:09 service sshd[4713]: Received disconnect from 10.4.12.2: 14: No further authentication methods available.
Apr 24 11:48:31 service sshd[4714]: Accepted password for root from 10.4.12.2 port 1528 ssh2
Apr 24 11:48:31 service sshd[4716]: pam_unix(sshd:session): session opened for user root by root(uid=0)
Apr 24 11:50:20 service sshd[4754]: Accepted password for root from 10.4.12.2 port 1529 ssh2
Apr 24 11:50:20 service sshd[4756]: pam_unix(sshd:session): session opened for user root by root(uid=0)
Apr 24 11:50:26 service sshd[4754]: Received disconnect from 10.4.12.2: 11: Disconnect requested by Windows SSH Client.

Merci beaucoup pour votre aide
bebert49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2007, 15h21   #2
Expert Confirmé
 
Avatar de Katyucha
 
Inscription : mars 2004
Messages : 3 109
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Allemagne

Informations forums :
Inscription : mars 2004
Messages : 3 109
Points : 3 313
Points : 3 313
Tu t'embetes pour rien
Regarde du coté du programme ippl, il fait ca très bien
__________________
Ancien Rédacteur Linux && Unix / Nouveau retraité de DVP
The UNIX way of sex:
gunzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep

Je ne réponds ni aux messages privées, ni aux messages plein de fautes...
Katyucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 10h02   #3
Invité régulier
 
Étudiant
Inscription : avril 2007
Messages : 17
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 17
Points : 6
Points : 6
J'ai lu attentivement la description de ippl, cependant ce logiciel ne correspond pas à mes besoins, car il ne loggue pas spécifiquement le protocole SSH. Or c'est celui-ci que je loggue. Une autre suggestion, une idée ou un bout de code?? merci
bebert49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 11h40   #4
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 450
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 450
Points : 7 559
Points : 7 559
Quelque chose comme ça ?
Code :
1
2
3
4
grep "opened" /var/log/sshd/sshd | while read
do
    grep -q "${REPLY}" /var/log/sshd/sshd_connect || echo "${REPLY}" >> /var/log/sshd/sshd_connect
done
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 14h26   #5
Invité régulier
 
Étudiant
Inscription : avril 2007
Messages : 17
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 17
Points : 6
Points : 6
C'est un peu ce genre là, oui. Cependant ce script s'exécutera assez souvent, il y a donc une redondance des informations dans ton code.
J'ai réussi à pondre un bout de code, pour ne pas avoir sa, mais je n'arrive pas à enlever le premier caratère qui s'insère avec la commande diff.

Code :
1
2
3
4
 
#!/bin/bash
 
cat /var/log/sshd/sshd | grep "Accepted">>/var/log/sshd/sshd_connect | diff /var/log/sshd/sshd_connect /var/log/sshd/sshd_connect1 | grep "<"
Voilà, après le grep je n'arrive pas à trouver comment enlever le "<" que rajoute le diff.

Une autre question, d'après le format de la date de mon fichier comment faire pour récupérer la durée? En gros avec le début et la fin de connexion, comment je peux soustraire pour récupérer une durée?

Merci d'avance, parce que là je galère
bebert49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 15h00   #6
Invité régulier
 
Étudiant
Inscription : avril 2007
Messages : 17
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 17
Points : 6
Points : 6
Une petite rectification sa ne marche pas, je ne sais plus quoi faire.

s'il vous plaît aidez-moi !!
bebert49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/04/2007, 18h54   #7
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par bebert49
Voilà, après le grep je n'arrive pas à trouver comment enlever le "<" que rajoute le diff.

Merci d'avance, parce que là je galère

Ça semble fonctionner

Code :
1
2
3
4
5
6
 
touch /var/log/sshd/sshd_connect_reference
grep "Accepted" /var/log/sshd/sshd > /var/log/sshd/sshd_connect_nouv
diff /var/log/sshd/sshd_connect_nouv /var/log/sshd/sshd_connect_reference | \
     sed -n '/^< /s/^< //p' >> /var/log/sshd/sshd_connect_reference
less sshd_connect_reference
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 11h04   #8
Invité régulier
 
Étudiant
Inscription : avril 2007
Messages : 17
Détails du profil
Informations personnelles :
Localisation : France, Charente Maritime (Poitou Charente)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 17
Points : 6
Points : 6
Merci beaucoup BlaireauOne, grâce à ton code j'avance enfin ^^.

Merci à tous.
bebert49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h59.


 
 
 
 
Partenaires

Hébergement Web