Mam konfigurację Logrotate, która wygląda następująco:
/var/log/update-job/*.log {
daily
rotate 7
compress
delaycompress
size 0k
missingok
copytruncate
notifempty
dateext
dateformat %Y%m%d.
extension log
su root syslog
}
Teoretycznie chciałbym to zrobić, po spotkaniu z plikiem o nazwie o nazwie thelog.log
, aby go obrócić thelog.20150622.log
, a następnego dnia do thelog.20150623.log
i tak dalej. Chcę tego dla wielu plików dziennika z dowolnymi nazwami plików, na przykład może być thelog.log
i anotherlog.log
wewnątrz folderu w tym samym czasie.
Jednak tak naprawdę to:
thelog.20150622.20150623.log
thelog.20150623.log
thelog.log
anotherlog.20150622.20150623.log
anotherlog.20150623.log
anotherlog.log
Powodem jest to, że wzorzec glob ( /var/log/update-job/*.log
) również pasuje do obróconych plików. Myślałem, że Logrotate jest wystarczająco sprytny, aby użyć dyrektywy dateformat, aby dowiedzieć się, że plik jest obrócony, ale najwyraźniej tak nie jest.
Wszelkie pomysły, jak to rozwiązać?
Obejściem może być usunięcie delaycompress
, aby pliki były kompresowane do pliku .log.gz po obróceniu, tak aby nie były już zgodne z wzorcem globu. Chciałbym jednak znaleźć mniej hackujące rozwiązanie.
?
dopasować pojedynczy znak lub zawęzić dopasowanie do liter tylko za pomocą[a-z]
klas char: unix.stackexchange.com/questions/67860/…