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 :
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 :
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
Partager