Назад | Перейти на главную страницу

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

Если вы посмотрите руководство man logrotate.confвы можете прочитать найти 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.

Вы можете отредактировать файл конфигурации, как показано ниже:

перед

include /etc/logrotate.d

после

include /etc/logrotate.d/*.conf

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

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

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

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

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

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

logrotate --force /tmp/test

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