Próbuję dopasować nazwy plików dla więzienia fail2ban - więc muszę używać tylko globowania nazw plików - nie wyrażeń regularnych ani skryptów bash.
Mój /var/log/apache2
katalog zawiera pliki, w tym:
example.com.error.log
db.example.com.error.log
app1.example.com.error.log
app2.example.com.error.log
Próbuję utworzyć glob, aby pasował do wszystkich plików kończących się na, .error.log
z wyjątkiem db.example.error.log
- czy to możliwe?
Próbowałem, !(db)*.error.log
ale to nadal pasuje db.example.com.error.log
. Zgaduję, że !()
nie pasuje do żadnych znaków, co pozwala na *
dopasowanie od początku nazwy pliku.
Uwaga: Nie chcę rozszerzać globu, gdy appX
dodawane są nowe pliki dziennika, więc nie mogę używać @()
z listą obecnie znanych nazw plików innych niż db.
(Tło: Chcę utworzyć filtr zabraniający wszystkim domagania się adresów URL phpMyAdmin w dowolnej domenie z wyjątkiem db.example.com)
źródło