У меня есть скрипт на сервере, который запускается каждые несколько минут и, среди прочего, проверяет, не были ли введены вредоносные записи crontab. Чтобы сделать это, я проверяю crontab всех пользователей, и все работает хорошо, но мой файл /var/log/cron
заполняется записями всех списков crontab, поэтому каждый раз, когда я запускаю скрипт, он регистрирует все списки crontab, подобные этому :
Nov 30 17:16:02 myserv crontab[348610]: (root) LIST (root)
Nov 30 17:16:02 myserv crontab[348611]: (root) LIST (bin)
Nov 30 17:16:02 myserv crontab[348612]: (root) LIST (daemon)
Nov 30 17:16:02 myserv crontab[348613]: (root) LIST (adm)
Nov 30 17:16:02 myserv crontab[348614]: (root) LIST (lp)
Nov 30 17:16:02 myserv crontab[348615]: (root) LIST (sync)
Nov 30 17:16:02 myserv crontab[348616]: (root) LIST (shutdown)
Nov 30 17:16:02 myserv crontab[348617]: (root) LIST (halt)
Nov 30 17:16:02 myserv crontab[348618]: (root) LIST (mail)
Nov 30 17:16:02 myserv crontab[348619]: (root) LIST (operator)
Nov 30 17:16:02 myserv crontab[348620]: (root) LIST (games)
Nov 30 17:16:02 myserv crontab[348621]: (root) LIST (ftp)
Nov 30 17:16:02 myserv crontab[348622]: (root) LIST (smb)
Nov 30 17:16:02 myserv crontab[348623]: (root) LIST (named)
Nov 30 17:16:02 myserv crontab[348624]: (root) LIST (postgres)
Nov 30 17:16:02 myserv crontab[348625]: (root) LIST (mysql)
.....
. ] поэтому он излишне заполняет файл журнала. Я играл с разными селекторами, но кажется, что при выборе cron.info
он показывает всю информацию, тогда как cron.notice
не показывает, когда crontab редактировался или выполнялся, что снова мне нравится в моих журналах.
# Log cron stuff
cron.* /var/log/cron
cron.*
похоже на cron.info
Любые идеи, как исключить записи «СПИСОК»? поэтому /var/log/cron
будет выглядеть так:
Nov 30 17:24:02 mysrv CROND[349831]: (root) CMDEND (/etc/cron.b/check nout >/dev/null 2>&1)
Nov 30 17:28:01 mysrv CROND[350781]: (root) CMD (/etc/cron.b/check nout >/dev/null 2>&1)
Я нашел решение с фильтром, для всех, кому интересно. Я вставил заявление выше cron.info, чтобы удалить нежелательные сообщения. так что мое решение выглядит как:
:msg, contains, "(root) LIST" ~
cron.* /var/log/cron
теперь все строки с записями «(root)LIST» будут отброшены.