Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 27-04-2017 13:42:08

winproof
Membre
Distrib. : debian 8
Noyau : Linux 3.16.0-4-amd64
(G)UI : sans
Inscription : 15-05-2013

[Résolu] chevrons avec grep?

salut

voila, j'ai besoin de vos lumières sur un truc que je comprend pas.

j'ai un petit souci avec fail2ban qui banni bien une ip mais ne m'affiche pas les lignes correspondantes dans le mail.

j'ai trouvé comment résoudre le problème, mais ce qui m’énerve c'est que je ne comprend pas la syntaxe de la commande utilisée.

voila la partie du fichier de conf de fail2ban qui défini la création du mail :


actionban = printf %%b "Hi,\n
            The IP <ip> has just been banned by Fail2Ban after
            <failures> attempts against <name>.\n\n
            Here is more information about <ip>:\n
            `whois <ip> || echo missing whois program`\n\n
            Lines containing IP:<ip> in <logpath>\n
            `grep '[^0-9]<ip>[^0-9]' <logpath>`\n\n
            Regards,\n
            Fail2Ban"|mail -s "[Fail2Ban] <name>: banned <ip> from  `uname -n`" <dest>
 



je suppose que les différentes variables (ip, name, etc...) sont définies ailleurs, dans un autre script.

donc la commande qui sert a extraire les lignes a afficher dans le mail est celle-ci :

grep '[^0-9]<ip>[^0-9]' <logpath>



ce que je ne comprend pas, c'est l'usage des chevrons (<>) pour l'affichage de la variable "IP".

je connait le shell bash, et pour moi les chevrons c'est des redirections...

donc j'en conclu que ce que j'observe dans ce fichier n'est pas destiné a un script shell, c'est ça?

c'est un autre langage? (ou alors je suis complétement perdu big_smile)

merci pour l'aide!

Dernière modification par winproof (21-06-2017 17:52:25)


Minute existentielle : "Si nous ne sommes pas sensés grignoter la nuit, pourquoi y a-t-il une lumière dans le frigo?"

Hors ligne

#2 27-04-2017 14:04:40

dejieres
Membre
Lieu : Moselle
Distrib. : Jessie 64 bits
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3.14+3 amd64
Inscription : 07-02-2017

Re : [Résolu] chevrons avec grep?

Comme c'est fail2ban qui va exécuter cette commande, il y a gros à parier qu'il va d'abord remplacer les séquences <xxx> par leurs valeurs avant de l'exécuter.
Il n'y aura donc pas de chevron dans la commande finale.

Hors ligne

#3 30-04-2017 02:22:55

winproof
Membre
Distrib. : debian 8
Noyau : Linux 3.16.0-4-amd64
(G)UI : sans
Inscription : 15-05-2013

Re : [Résolu] chevrons avec grep?

ah ben oui, vu comme ça c'est plus clair.

ce qui m'a piégé c'est que le fichier de conf est écrit un peu comme un script shell, avec en plus des appels a des commandes shells.

mais vu que je vient de voir que fail2ban est écrit en python , je suppose que la syntaxe <xxx> est un truc propre a python (j'y connait rien en programmation big_smile)

j'vais me pencher sur le bousin par curiosité smile

Minute existentielle : "Si nous ne sommes pas sensés grignoter la nuit, pourquoi y a-t-il une lumière dans le frigo?"

Hors ligne

#4 30-04-2017 10:20:05

dejieres
Membre
Lieu : Moselle
Distrib. : Jessie 64 bits
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3.14+3 amd64
Inscription : 07-02-2017

Re : [Résolu] chevrons avec grep?

Non, je ne pense pas que ce soit propre à Python.
C'est simplement un choix de délimiteurs fait par le développeur pour les variables remplaçables. Qui a aussi fait le choix de mettre des commandes bash paramétrées dans son fichier de configuration plutôt que de les construire par code.

Hors ligne

#5 21-06-2017 17:52:06

winproof
Membre
Distrib. : debian 8
Noyau : Linux 3.16.0-4-amd64
(G)UI : sans
Inscription : 15-05-2013

Re : [Résolu] chevrons avec grep?

ok merci!

Minute existentielle : "Si nous ne sommes pas sensés grignoter la nuit, pourquoi y a-t-il une lumière dans le frigo?"

Hors ligne

Pied de page des forums