У меня есть файл в 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
, этого не произойдет, но я хотел бы сохранить «тест» по тому же пути.
Если вы посмотрите руководство 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
.
Поместив файл test
в /etc/logrotate.d/
, он будет автоматически выбран logrotate.
Если вы хотите запустить его вручную, вы можете заставить его выполнить logrotate для конкретного файла независимо от его местоположения.
logrotate --force /tmp/test
Где / tmp / test
- это новое расположение файла.
Если вы не хотите касаться «теста», вы можете попробовать изменить директиву include /etc/logrotate.d
в /etc/logrotate.conf
. По умолчанию он обращается к каталогу и, таким образом, анализирует все файлы в этом каталоге, за исключением некоторых расширений файлов.
Что вы можете попробовать, так это изменить каталог include, чтобы ссылаться на отдельные файлы в /etc/logrotate.d, например /etc/logrotate.d/apt и т. Д. Вы исключаете "test" из этого списка. Я не тестировал это, но, возможно, стоит попробовать.
Вы можете редактировать конфигурационный файл следующим образом:
до
include /etc/logrotate.d
после
include /etc/logrotate.d/*.conf
Это должно привести к тому, что только файлы, заканчивающиеся .conf
в /etc/logrotate.d/
, будут приняты с помощью логротата, исключая ваш test
файл
, если у вас уже есть файлы в /etc/logrotate. d/
, используемый logrotate, необходимо обновить, чтобы включить .conf