Was ist der Unterschied?

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Registriert
19. Aug. 2008
Beiträge
18.275
Reaktionspunkte
4
Punkte
0
Hallo zusammen

wir haben hier ein ziemlich merkwürdiges Problem. Es geht um einen cronjob welcher die dhcp Logs rotieren soll und dann dem syslog einen Schubser gibt, damit dieser bemerkt dass die Logfiles rotiert wurden. Bis anhin habe ich dazu den Job mit crontab -e eingetragen. Allerdings hat sich nun herausgestellt, dass der logrotate gemacht wird, aber der syslog es nicht mitbekommt und daher überhaupt nichts mehr loggt. Wenn ich jedoch den gleichen Job nehme und direkt in /etc/crontab eintrage, dann funzt alles wie gewünscht und nach dem Rotieren loggt syslog ins neue (leere) File. Mir war bis anhin nicht bewusst, dass crontab -e das anders machen würde. Kennt jemand den Grund wieso das unterschiedlich gehandhabt wird? Beide Jobs laufen als root, also wird es kaum an den Rechten liegen
 
Nach meinem Stand kennt crontab -e aber nicht das Tabellenfeld 'user', sondern nur minute, hour, day, month, weekday und command - d.h. es könnte damit durchaus eine Frage der Rechte sein.
 
klar root braucht es via crontab -e nicht, da dies automatisch den crontab des jeweiligen Users bearbeiten müsste. Der Job ist auch bei crontab -e als root gelaufen, sonst hätte er nie rotieren können mangels Schreibrechten auf die Logfiles ;-)
 
ok, hast recht. Und Du hast eine /etc/logrotate.d/dhcp mit einem Neustart des syslog, was sauber durchläuft?
 
Und Du hast eine /etc/logrotate.d/dhcp mit einem Neustart des syslog, was sauber durchläuft?
habe zwar nur eine /etc/logrotate.d/rsyslog aber dort drin ist der rotate auch für das dhcp Log definiert. Also sollte das wohl passen ;-) Der Job macht keinen echten restart des syslog sonder einfach einen reload was gemäss Manual reicht, dass der syslog erkennt, dass das Log rotiert wurde. Da aber das genau gleiche direkt im /etc/crontab funzt müsste also von der Konfig her alles passen. Der Aufruf für den cron ist /usr/sbin/logrotate -f /etc/logrotate.conf
Ich würde die Sache mit den Rechten verstehen wenn es im crontab -e einfach nichts machen würde, aber der macht scheinbar schlicht nur die Hälfte
 
Da fällt mir nur ein, dass bei rsyslog mal in einigen Fällen der Status nicht korrekt zurückgemeldet wurde, ein Restart lief damit nicht sauber - wobei sich das dann eigentlich auch im Fall mit etc/crontab zeigen müsste (Du kannst ja aber dennoch mal testweise das 'reload rsyslogd...' ersetzen durch ein '/bin/kill -HUP $(/bin/pidof rsyslogd)...'
 
Hi Frogman

werde das am Mo im Büro mal probieren, obwohl ich nicht glaube, dass es helfen wird. Du sagst ja selber, dann müsste es in /etc/crontab dasselbe sein und genau das denke ich auch. Wir machen den Logrotate auf allen Servern so d.h. mit abschliessenden rsyslog reload und es funzt eigentlich immer zuverlässig. Der Unterschied ist dabei wieder, dass der daily logrotate per default via /etc/crontab ausgeführt wird und nicht im Usercrontab mit crontab -e. Drum würde ich was wetten, dass es irgendwie geartet am cron liegen muss und nicht am rsyslog :-)

Gruss

tobi
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat