Ich versuche, Dateinamen für ein Fail2Ban-Gefängnis abzugleichen. Daher muss ich nur das Globbing von Dateinamen verwenden, keine regulären Ausdrücke oder Bash-Skripte.
Mein /var/log/apache2
Verzeichnis enthält Dateien einschließlich:
example.com.error.log
db.example.com.error.log
app1.example.com.error.log
app2.example.com.error.log
Ich versuche , eine glob zu erstellen , um alle Dateien mit der Endung entsprechen , .error.log
außer db.example.error.log
- ist das möglich?
Ich habe es versucht, !(db)*.error.log
aber das passt immer noch db.example.com.error.log
. Ich vermute, das !()
stimmt mit keinen Zeichen *
überein , so dass die Zeichen ab dem Anfang des Dateinamens übereinstimmen .
Hinweis: Ich möchte den Glob nicht erweitern müssen, wenn neue appX
Protokolldateien hinzugefügt werden. Daher kann ich ihn nicht @()
mit der Liste der derzeit bekannten Nicht-DB-Dateinamen verwenden.
(Hintergrund: Ich möchte einen Filter erstellen, der alle Personen mit Ausnahme von db.example.com verbietet, die phpMyAdmin-URLs in einer beliebigen Domain anfordern.)