Puncte:0

Cum să dezactivez intrările din lista crontab în cron log?

drapel do

Am un script pe server care rulează la fiecare câteva minute și, printre altele, verifică dacă au fost injectate unele intrări crontab rău intenționate. Pentru a face acest lucru, verific crontab-urile tuturor utilizatorilor, care funcționează bine, dar al meu /var/log/cron fișierul se umple cu intrări ale tuturor listelor crontab, așa că de fiecare dată când rulez scriptul ar înregistra toate listele crontab astfel:

30 nov 17:16:02 myserv crontab[348610]: (rădăcină) LIST (rădăcină)
30 nov 17:16:02 myserv crontab[348611]: (rădăcină) LIST (bină)
30 nov 17:16:02 myserv crontab[348612]: (rădăcină) LISTĂ (daemon)
30 nov 17:16:02 myserv crontab[348613]: (rădăcină) LIST (adm)
30 nov 17:16:02 myserv crontab[348614]: (rădăcină) LIST (lp)
30 nov 17:16:02 myserv crontab[348615]: (rădăcină) LIST (sincronizare)
30 nov 17:16:02 myserv crontab[348616]: (rădăcină) LIST (închidere)
30 nov 17:16:02 myserv crontab[348617]: (rădăcină) LIST (oprire)
30 nov 17:16:02 myserv crontab[348618]: (rădăcină) LIST (e-mail)
30 nov 17:16:02 myserv crontab[348619]: (rădăcină) LIST (operator)
30 nov 17:16:02 myserv crontab[348620]: (rădăcină) LISTĂ (jocuri)
30 nov 17:16:02 myserv crontab[348621]: (rădăcină) LIST (ftp)
30 nov 17:16:02 myserv crontab[348622]: (rădăcină) LIST (smb)
30 nov 17:16:02 myserv crontab[348623]: (rădăcină) LISTĂ (numită)
30 nov 17:16:02 myserv crontab[348624]: (rădăcină) LIST (postgres)
30 noiembrie 17:16:02 myserv crontab[348625]: (rădăcină) LIST (mysql)
.....

deci umple fișierul jurnal inutil. M-am jucat cu diferite selectoare dar se pare la alegere cron.info arată toate informațiile, în timp ce cron.notice nu arată când crontab a fost editat sau executat, ceea ce din nou îmi place în jurnalele mele.

# Înregistrează chestii cron
cron.* /var/log/cron

cron.* pare a fi la fel ca cron.info Aveți idei despre cum să excludeți intrările „LIST”? asa de /var/log/cron ar arata ca:

30 nov 17:24:02 mysrv CROND[349831]: (rădăcină) CMDEND (/etc/cron.b/check nout >/dev/null 2>&1)
30 nov 17:28:01 mysrv CROND[350781]: (rădăcină) CMD (/etc/cron.b/check nout >/dev/null 2>&1)
Puncte:1
drapel pe

Încearcă cu cron.niciuna . Dacă utilizați * un asterisc ( * ) corespunde cu zero sau mai multe apariții.

Acum puteți modifica regula pentru a muta jurnalul într-un alt fișier /cale/la/altul/fișier

ACTUALIZAȚI

Compară-Operații

În prezent sunt acceptate următoarele operațiuni de comparare:

conţine

Verifică dacă șirul furnizat în valoare este conținut în proprietate. Trebuie să existe o potrivire exactă, metacaracterele nu sunt acceptate.

este egal

Compară șirul âvalueâ furnizat și conținutul proprietății. Aceste două valori trebuie să fie exact egale pentru a se potrivi. Diferența de a conține este că conține căutări pentru valoarea oriunde în interiorul valorii proprietății, în timp ce toate caracterele trebuie să fie identice pentru este egal. Ca atare, isequal este cel mai util pentru câmpuri precum syslogtag sau FROMHOST, unde probabil cunoașteți conținutul exact.

incepe cu

Verifică dacă valoarea se găsește exact la începutul valorii proprietății. De exemplu, dacă căutați âvalâ cu

:msg, începe cu, "val"

va fi o potrivire dacă mesajul conține „valorile sunt în acest mesaj”, dar nu se va potrivi dacă mesajul conține „Există valori în acest mesaj” (în cazul ulterioară, „conține” s-ar potrivi). Vă rugăm să rețineți că âstartswithâ este cu mult mai rapid decât expresiile regulate. Deci, chiar și odată ce sunt implementate, poate fi foarte logic (din punct de vedere al performanței) să folosiți âstartswithâ.

regex

Compară proprietatea cu expresia regulată POSIX BRE furnizată.

ereregex

Compară proprietatea cu expresia regulată POSIX ERE furnizată.

Puteți folosi caracterul bang (!) imediat în fața unei operații de comparare, rezultatul acestei operațiuni este negat. De exemplu, dacă msg conține âAcesta este un mesaj informativâ, următorul eșantion nu se potrivește:

:msg, conține, „eroare”

dar acesta se potrivește:

:msg, !contains, "eroare"

Utilizarea negației poate fi utilă dacă doriți să faceți o procesare generică, dar să excludeți unele evenimente specifice. Puteți utiliza acțiunea de eliminare împreună cu aceasta. O mostră ar fi:

*.* /var/log/allmsgs-including-informational.log
:msg, conține, „informațional” ~
*.* /var/log/allmsgs-but-informational.log

Nu treceți cu vederea tilda din linia 2! În acest exemplu, toate mesajele sunt scrise în fișierul allmsgs-including-informational.log. Apoi, toate mesajele care conțin șirul „informațional” sunt eliminate. Aceasta înseamnă că liniile fișierului de configurare de sub „linia de eliminare” (numărul 2 din exemplul nostru) nu vor fi aplicate acestui mesaj. Apoi, toate liniile rămase vor fi de asemenea scrise în fișierul allmsgs-but-informational.log.

DenisZ avatar
drapel do
dacă folosesc cron.none, atunci nu primesc nicio intrare de jurnal, ceea ce nu este ceea ce vreau. Vreau doar să exclud intrările crontab LIST din jurnal
Arden Smith avatar
drapel pe
Creați o altă regulă pentru a muta jurnalul într-o altă locație, așa cum vă sugerați în răspunsul meu, pentru a avea intrările de jurnal mai curate și mai ușoare.
DenisZ avatar
drapel do
Mulțumesc, studiam documentația și am venit cu soluția de mai jos
Puncte:0
drapel do

Am gasit solutie cu filtru, pentru oricine este interesat. Am inserat o declarație deasupra cron.info, pentru a elimina mesajele nedorite. deci solutia mea arata asa:

:msg, conține, „LISTA (rădăcină)” ~
cron.* /var/log/cron

acum toate liniile cu intrări cu „(rădăcină) LIST” vor fi eliminate.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.