Подстановочный знак Logrotate завершается с ошибкой при отсутствии файлов с «missingok» И «olddir»

741
sastorsl

Платформа:

RHEL 7 logrotate-3.8.6-7.el7_2.x86_64 

Фон:

На сервере RedHat Linux у меня работает большой набор серверов приложений, и мне нужна единая процедура logrotate для очистки файлов журналов. Использование подстановочных знаков имеет первостепенное значение, поэтому мне не нужно вести постоянно растущий и сокращающийся список.

Выпуск:

Комбинируя групповые символы, опция «missingok» И «olddir», похоже, не работают. Когда я определяю шаблон для файлов журнала отладки - который может существовать или не существовать - и использую только «missingok», все в порядке. Если я добавлю «olddir» опцию, она завершится неудачно с:

# logrotate -d /etc/logrotate.d/foobar reading config file /etc/logrotate.d/foobar olddir is now old_logs error: /etc/logrotate.d/foobar:28 error verifying log file path /srv/www/servers/*/logs: No such file or directory removing last 1 log configs 

Конфигурационный файл:

/srv/www/servers/*/logs/*_foobar.txt { daily olddir old_logs missingok } 

Я вижу, что в http://rhn.redhat.com/errata/RHBA-2008-0703.html уже давно исправлено исправление проблемы с подстановочными знаками и пропущенными, но кто-нибудь видел или исправлял проблему с помощью olddir?

Я собираюсь пропустить olddir и использовать postrotate + find / mv, но я бы не хотел этого делать.

0

2 ответа на вопрос

0
sastorsl

Fixed upstream: https://github.com/logrotate/logrotate/commit/73493ec38c5e806fa66d8c3f13259775da6282d9

Quote:

Fix 'olddir' usage with wildcard in the middle of path in the pattern… … definition when the pattern did not match any log file. 
0
zjalex

Я встретил ту же проблему.

Посмотрите каталог с /var/logs/*/*/*.log и используйте вместе с "missingok" и "olddir".

Если в этом каталоге нет журналов, он будет жаловаться:

ошибка при проверке пути к файлу журнала / var / logs / * / *: такого файла или каталога нет

@sastorsl, как ты тогда?

Шахтный логротат 3.7.8.

Кажется, это было исправлено в 3.11.0.