J'essaie de faire correspondre les noms de fichiers pour une prison fail2ban - j'ai donc besoin d'utiliser uniquement la globalisation des noms de fichiers - pas les regex ou les scripts bash.
Mon /var/log/apache2
répertoire contient des fichiers comprenant:
example.com.error.log
db.example.com.error.log
app1.example.com.error.log
app2.example.com.error.log
J'essaie de créer un glob pour correspondre à tous les fichiers se terminant par .error.log
excepté db.example.error.log
- est-ce possible?
J'ai essayé !(db)*.error.log
mais cela correspond toujours db.example.com.error.log
. Je suppose que le !()
ne correspond à aucun caractère, ce qui permet de le *
faire correspondre depuis le début du nom de fichier.
Remarque: je ne veux pas avoir à étendre le glob lorsque de nouveaux appX
fichiers journaux sont ajoutés, donc je ne peux pas utiliser @()
avec la liste des noms de fichiers non-db actuellement connus.
(Contexte: je veux créer un filtre interdisant toute personne demandant des URL phpMyAdmin sur n'importe quel domaine à l' exception de db.example.com)
la source