У меня есть файл в 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
это новое расположение файла.