Estoy tratando de hacer coincidir los nombres de archivo para una cárcel de fail2ban, por lo que necesito usar solo la globalización de nombres de archivo, no expresiones regulares o secuencias de comandos bash.
Mi /var/log/apache2
directorio contiene archivos que incluyen:
example.com.error.log
db.example.com.error.log
app1.example.com.error.log
app2.example.com.error.log
Estoy tratando de crear un globo para que coincida con todos los archivos que terminan en .error.log
excepto db.example.error.log
, ¿es esto posible?
Lo he intentado !(db)*.error.log
pero esto todavía coincide db.example.com.error.log
. Supongo que !()
no coincide con ningún carácter, lo que permite *
que coincida desde el comienzo del nombre del archivo.
Nota: No quiero tener que extender el glob cuando appX
se agregan nuevos archivos de registro, por lo que no puedo usar @()
con la lista de nombres de archivos no db conocidos actualmente.
(Antecedentes: quiero crear un filtro que prohíba a cualquiera que solicite URL de phpMyAdmin en cualquier dominio, excepto db.example.com)