Рейтинг:0

Как отключить записи списка crontab в журнале cron?

флаг do

У меня есть скрипт на сервере, который запускается каждые несколько минут и, среди прочего, проверяет, были ли введены некоторые вредоносные записи crontab. Для этого я проверяю crontabs всех пользователей, все работает хорошо, но мой /вар/журнал/хрон файл заполняется записями всех списков crontab, поэтому каждый раз, когда я запускаю скрипт, он будет регистрировать все списки crontab следующим образом:

30 ноября 17:16:02 myserv crontab[348610]: (корень) СПИСОК (корень)
30 ноября 17:16:02 myserv crontab[348611]: (root) LIST (bin)
30 ноября 17:16:02 myserv crontab[348612]: (root) LIST (демон)
30 ноября 17:16:02 myserv crontab[348613]: (root) LIST (adm)
30 ноября 17:16:02 myserv crontab[348614]: (root) LIST (lp)
30 ноября 17:16:02 myserv crontab[348615]: (root) LIST (синхронизация)
30 ноября 17:16:02 myserv crontab[348616]: (root) LIST (завершение работы)
30 ноября 17:16:02 myserv crontab[348617]: (root) LIST (остановка)
30 ноября 17:16:02 myserv crontab[348618]: (root) LIST (почта)
30 ноября 17:16:02 myserv crontab[348619]: (root) LIST (оператор)
30 ноября 17:16:02 myserv crontab[348620]: (root) LIST (игры)
30 ноября 17:16:02 myserv crontab[348621]: (root) LIST (ftp)
30 ноября 17:16:02 myserv crontab[348622]: (root) LIST (smb)
30 ноября 17:16:02 myserv crontab[348623]: (root) LIST (с именем)
30 ноября 17:16:02 myserv crontab[348624]: (root) LIST (postgres)
30 ноября 17:16:02 myserv crontab[348625]: (root) LIST (mysql)
.....

поэтому он излишне заполняет файл журнала. Я играл с разными селекторами, но кажется, что при выборе cron.info он показывает всю информацию, тогда как cron.notice он не показывает, когда crontab редактировался или выполнялся, что опять же мне нравится в моих журналах.

# Логируем cron
хрон.* /var/журнал/хрон

хрон.* кажется таким же, как cron.info Любые идеи, как исключить записи «СПИСОК»? так /вар/журнал/хрон будет выглядеть так:

30 ноября 17:24:02 mysrv CROND[349831]: (root) CMDEND (/etc/cron.b/check nout >/dev/null 2>&1)
30 ноября 17:28:01 mysrv CROND[350781]: (root) CMD (/etc/cron.b/check nout >/dev/null 2>&1)
Рейтинг:1
флаг pe

Попробуйте с cron.none . Если вы используете * звездочка ( * ) соответствует нулю или более вхождений.

Теперь вы можете изменить правило, чтобы переместить журнал в другой файл. /путь/к/другому/файлу

ОБНОВИТЬ

Операции сравнения

В настоящее время поддерживаются следующие операции сравнения:

содержит

Проверяет, содержится ли строка, указанная в значении, в свойстве. Должно быть точное совпадение, подстановочные знаки не поддерживаются.

равно

Сравнивает предоставленную строку «значение» и содержимое свойства. Эти два значения должны быть точно равны, чтобы соответствовать. Отличие от contains заключается в том, что contains ищет значение в любом месте внутри значения свойства, в то время как все символы должны быть идентичны для isequal. Таким образом, isequal наиболее полезен для таких полей, как syslogtag или FROMHOST, где вы, вероятно, знаете точное содержимое.

начинается с

Проверяет, находится ли значение точно в начале значения свойства. Например, если вы ищете «val» с помощью

:msg, начинается с, "val"

это будет совпадение, если сообщение содержит «значения находятся в этом сообщении», но оно не будет соответствовать, если сообщение содержит «В этом сообщении есть значения» (в последнем случае «содержит» будет соответствовать). Обратите внимание, что "startwithwith" намного быстрее, чем регулярные выражения. Таким образом, даже после того, как они будут реализованы, может иметь смысл (с точки зрения производительности) использование «начинается с».

регулярное выражение

Сравнивает свойство с предоставленным регулярным выражением POSIX BRE.

эрегекс

Сравнивает свойство с предоставленным регулярным выражением POSIX ERE.

Вы можете использовать символ взрыва (!) непосредственно перед операцией сравнения, результат этой операции будет отрицательным. Например, если сообщение содержит «Это информационное сообщение», следующий образец не будет соответствовать:

:msg, содержит "ошибка"

но этот подходит:

:msg, !содержит, "ошибка"

Использование отрицания может быть полезно, если вы хотите выполнить некоторую общую обработку, но исключить некоторые конкретные события. Вы можете использовать действие сброса в сочетании с этим. Образец будет:

*.* /var/log/allmsgs-informational.log
:msg, содержит, "информационное" ~
*.* /var/log/allmsgs-но-информационный.log

Не пропустите тильду в строке 2! В этом примере все сообщения записываются в файл allmsgs-informational.log. Затем все сообщения, содержащие строку «информационные», отбрасываются. Это означает, что строки конфигурационного файла ниже «строки удаления» (номер 2 в нашем примере) не будут применяться к этому сообщению. Затем все оставшиеся строки также будут записаны в файл allmsgs-but-informational.log.

DenisZ avatar
флаг do
если я использую cron.none, я не получаю никаких записей в журнале, а это не то, что мне нужно. Я просто хочу исключить записи crontab LIST из журнала
Arden Smith avatar
флаг pe
Создайте еще одно правило, чтобы переместить журнал в другое место, как предлагается в моем ответе, чтобы записи в журнале были более чистыми и простыми.
DenisZ avatar
флаг do
Спасибо, я изучал документацию и нашел решение ниже
Рейтинг:0
флаг do

Я нашел решение с фильтром, для всех, кто заинтересован. Я вставил заявление выше cron.info, чтобы удалить нежелательные сообщения. поэтому мое решение выглядит так:

:msg, содержит, "(корневой) СПИСОК" ~
хрон.* /var/журнал/хрон

теперь все строки с записями с "(root) LIST" будут отброшены.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.