Как исключить службу в /etc/logrotate.d/ для запуска с основным заданием logrotate

У меня есть файл в logrotate.d, который я бы не хотел запускать, когда основной logrotate это работает. Я создал для этого отдельное задание в / etc / crontab

45 23   * * *   root    mv /var/log/RemoteSystems/*/*.log /var/log/Archiv/ && logrotate /etc/logrotate.d/test  

. Это задание переместит файлы из одного каталога в другой, а затем применит logrotate. Я бы хотел, чтобы это задание выполнялось отдельно от основного задания logrotate в / etc / crontab . Проблема в том, что, поскольку "test" находится в /etc/logrotate.d/ , он будет запущен еще раз с основным logrotate. Есть ли какая-нибудь команда, которую я могу вставить в logrotate.conf, которая может исключить запуск "test"? Я знаю, что если у меня есть «тестовый» файл из /etc/logrotate.d , этого не произойдет, но я хотел бы сохранить «тест» по тому же пути.

3
задан 4 March 2017 в 14:46
4 ответа

Если вы посмотрите руководство man logrotate.conf , вы можете прочитать опцию find tabooext , которая позволяет вам исключать некоторые файлы с определенными расширениями.

tabooext [+] list
     The current taboo extension list is changed (see the include directive for information on the taboo extensions). If a + precedes the
     list of extensions, the current taboo extension list is augmented, otherwise it is replaced. At startup, the  taboo  extension list
     contains  .rpmsave,  .rpmorig,  ~, .disabled, .dpkg-old, .dpkg-dist, .dpkg-new, .dpkg-bak, .dpkg-del, .cfsaved, .ucf-old, .ucf-dist,
     .ucf-new, .rpmnew, .swp, .cfsaved, .rhn-cfg-tmp-*

Вы можете выбрать одно из исключенных расширений по умолчанию, например .disabled ] или вы можете указать свое собственное дополнительное расширение, например:

tabooext + .test

Все, что вам нужно сделать, это переименовать ваш файл /etc/logrotate.d/test , чтобы иметь любое из этих расширений, например / etc /logrotate.d/test.disabled.

3
ответ дан 3 December 2019 в 06:01

Поместив файл test в /etc/logrotate.d/ , он будет автоматически выбран logrotate.

Если вы хотите запустить его вручную, вы можете заставить его выполнить logrotate для конкретного файла независимо от его местоположения.

logrotate --force /tmp/test

Где / tmp / test - это новое расположение файла.

0
ответ дан 3 December 2019 в 06:01

Если вы не хотите касаться «теста», вы можете попробовать изменить директиву include /etc/logrotate.d в /etc/logrotate.conf . По умолчанию он обращается к каталогу и, таким образом, анализирует все файлы в этом каталоге, за исключением некоторых расширений файлов.

Что вы можете попробовать, так это изменить каталог include, чтобы ссылаться на отдельные файлы в /etc/logrotate.d, например /etc/logrotate.d/apt и т. Д. Вы исключаете "test" из этого списка. Я не тестировал это, но, возможно, стоит попробовать.

0
ответ дан 3 December 2019 в 06:01

Вы можете редактировать конфигурационный файл следующим образом:

до

include /etc/logrotate.d

после

include /etc/logrotate.d/*.conf

Это должно привести к тому, что только файлы, заканчивающиеся .conf в /etc/logrotate.d/, будут приняты с помощью логротата, исключая ваш test файл

, если у вас уже есть файлы в /etc/logrotate. d/, используемый logrotate, необходимо обновить, чтобы включить .conf

1
ответ дан 3 December 2019 в 06:01

Теги

Похожие вопросы