Cronjob richtig!?

scrat

New Member
Halloo,

Ich wollte bei meinem Vserver einstellen, dass der immer 3 Uhr früh's neustartet, und ncoh ein paar befehle ausführt.
Da hab ich das nun so eingegeben:

Code:
00 3 * * * reboot >/dev/null 2>&1
05 3 * * * apache2ctl stop >/dev/null 2>&1
07 3 * * * /opt/lampp/lampp start >/dev/null 2>&1
10 3 * * * apache2ctl start >/dev/null 2>&1

Wenn ich die einzelnen Befehle als root eingebe kommt kein Fehler. Aber in der Log Datei steht nun nichts davon, dass der Server neugestartet wurde oder das Apache beendet und wieder gestartet wurde.

Liegt das nun daran, dass ich meinen Cronjob falsch eingestellt hab, oder wird das in der Log Datei (von Virtuozzo / Plesk) einfach nur nicht angezeigt, wenn man das über die console macht!?

Vielen dank schonmal. :)


vg scrat
 
Ich würde statt:
Code:
00 3 * * * reboot >/dev/null 2>&1
das hier
Code:
0 3 * * * reboot >/dev/null 2>&1
schreiben. Minutenangaben von 0-59 also 0,1,2,3,... ohne führende Null.


Schau mal in unter /var/log/syslog , da müsste es drin stehen wenn der Server neu startet. Ist vielleicht eine blöde Frage, aber hat der nächtliche Reboot einen tieferen Sinn?
 
Also das mit den Nullen hab ich nur geschrieben, damit das hier schön untereinander steht. ;) Im Crontab hab ich nur eine geschrieben.

Ich hab mal danach geguckt, aber im Ordner /var/logs ist weder eine Datei noch ein Ordner syslog. Und mit "whereis" syslog, konnte ich auch nichts brauchbares finden.

Der Sinn des Neustartes, ist, dass ein Fehler, der auftritt behoben wird. Also ich hab ein Spiel auf meinem Server laufen. Und manchmal, bei zu hoher Auslastung, kommt dann irgendwann ein dauerhafter Mysql Fehler, wo irgendwas mit Maximum Connections drinnsteht (Wie der Fehler genau aussieht, weiss ich jetzt nich.). Und wenn ich den Server neustarte, läuft wieder alles normal. Und mit dem Neustart in der Nacht wollt ich probiern, ob das vielleicht etwas bringt, sodass nicht mehr so oft der Fehler kommt. Oder gibts vielleicht irgendwie ne andre Lösung dafür? :)


vg scrat :rolleyes:
 
Es sollte doch reichen MySQL und eventuell Apache neu zu starten.
Hast du dich schon einmal damit auseinander gesetzt, was ">/dev/null 2>&1" zu bedeuten hat?


PS: Dateien sucht man fuer gewoehnlch mit "find" oder "locate".
 
Wenn ich die einzelnen Befehle als root eingebe kommt kein Fehler. Aber in der Log Datei steht nun nichts davon, dass der Server neugestartet wurde oder das Apache beendet und wieder gestartet wurde.

Hast Du die Einträge in der /etc/crontab oder der crontab eines Users gemacht?

Die Einträge in der /etc/crontab werden evtl. mit einer anderen (oder leeren) PATH-Variable ausgeführt als der von root. Deshalb werden die Dateien vielleicht nicht gefunden. Versuch mal die Befehle inkl. Pfad einzutragen. (Also /sbin/reboot, /usr/sbin/apache2ctl etc.)
 
@Guin: Das mit dem Mysql neustarten wär natürlich auch noch ne Möglichkeit. Muss ich mal das nächste mal probieren, wenn wieder der Fehler kommt. Also das >/dev/null 2>&1 ist dazu da, um den Befehl als init (ich weiss nicht, ob das das richtige Wort dafür ist) auszuführen. Also das der nur im Hintergrund läuft, und nicht ausgegeben wird. Also z.b. bei Lynx wird zwar der Browser gestartet, im Hintergrund, aber man sieht nichts davon. Das in etwa macht das, würd ich denken...

@Thorsten: Die messages gibt es. Und da steht folgendes:

Code:
Oct 18 03:00:01 v1115 /usr/sbin/cron[30111]: (root) CMD (reboot)
Oct 18 03:00:01 v1115 /usr/sbin/cron[30118]: (root) CMD (/usr/local/psa/admin/sbin/backupmng >/dev/null 2>&1)
Oct 18 03:05:01 v1115 /usr/sbin/cron[31989]: (root) CMD (apache2ctl stop >/dev/null 2>&1)
Oct 18 03:07:01 v1115 /usr/sbin/cron[32079]: (root) CMD (/opt/lampp/lampp start >/dev/null 2>&1)
Oct 18 03:10:01 v1115 /usr/sbin/cron[32731]: (root) CMD (apache2ctl start >/dev/null 2>&1)
Also scheint da neustart gemacht zu haben...

@mkr: Ich hab den Cronjob in Plesk als root gemacht. Aber bei den voreingestellten Cronjobs steht überall /usr/local/psa/admin/sbin und dann noch was dazu. Sollte ich das vielleicht auch machen? Aber Log Datei sagt ja eigentlich, dass er neugestartet hat.


Vielen Dank für eure Hilfe ! :)


vg scrat :rolleyes:
 
Hallo scrat,

vielleicht ist es zu simpel um darauf zu kommen...

Aber du könntest dir doch ganz einfach die 'uptime' angucken und schon weißt du wie lange er läuft also auch wann er rebootet wurde ;)

Lieben Gruß
Free
 
Man kann Dienste wie Apache,Exim,Mysql,SSH, .... mit Monit überwachen lassen. Der kann bei Bedarf Dienste die nicht mehr funktionieren/nicht mehr richtig funktionieren neu starten und den Admin per Mail davon unterrichten.

Off-Topic:
Damit das für mich nun mal geklärt wird. messages ist die syslog-datei für Suse?
Arbeite sonst nur mit debian..
 
Last edited by a moderator:
Joa. Also messages scheint da die syslog zu sein. Weil da steht wirklich jedes Ereignis drin.

Ich hab jetzt mal Monit über Yast installiert. Ich kann auch en bissl was machen. Also im Verzeichnis /usr/bin kann ich den Befehel monit <argument> eingeben. Steht irgendwo was dazu beschrieben, mit welchem Befehl ich was machen kann? Und wie bekomm ich das hin, dass monit auch so im Browser angezeigt wird, wie die Screenshots sind?


vg scrat :rolleyes:
 
Also zum starten bekomm ichs ja. Der zeigt mir dann an, dass der Daemon mit dem Port gestartet ist. Wenn ich aber nun die Seite aufrufe, kommt nur weißer Bildschirm. Also es wird nichts angezeigt.
Und in der Anleitung und in Google hab ich auch nix gefunden...


vg scrat :rolleyes:
 
Nö... Also ich seh nix.

Hier mal die Ausgabe:

Code:
monit: Debug: Adding host allow 'localhost' (127.0.0.1).
monit: Debug: Adding credentials for user 'admin'.
Runtime constants:
 Control file       = /etc/monitrc
 Log file           = (not defined)
 Pid file           = /var/run/monit.pid
 Debug              = True
 Log                = False
 Use syslog         = False
 Is Daemon          = True
 Use process engine = True
 Poll time          = 120 seconds
 Mail server(s)     = localhost
 Mail from          = (not defined)
 Mail subject       = (not defined)
 Mail message       = (not defined)
 Start monit httpd  = True
 httpd bind address = Any/All
 httpd portnumber   = 3996
 httpd signature    = True
 Use ssl encryption = False
 httpd auth. style  = Basic Authentication and Host/Net allow list

The service list contains the following entries:

System Name           = myhost.mydomain.tld
 Monitoring mode      = active
 CPU wait limit       = if greater than 20.0% 1 times within 1 cycle(s) then alert else if passed 1 times within 1 cycle(s) then alert
 CPU system limit     = if greater than 30.0% 1 times within 1 cycle(s) then alert else if passed 1 times within 1 cycle(s) then alert
 CPU user limit       = if greater than 70.0% 1 times within 1 cycle(s) then alert else if passed 1 times within 1 cycle(s) then alert
 Memory usage limit   = if greater than 75.0% 1 times within 1 cycle(s) then alert else if passed 1 times within 1 cycle(s) then alert
 Load avg. (5min)     = if greater than 2.0 1 times within 1 cycle(s) then alert else if passed 1 times within 1 cycle(s) then alert
 Load avg. (1min)     = if greater than 4.0 1 times within 1 cycle(s) then alert else if passed 1 times within 1 cycle(s) then alert

-------------------------------------------------------------------------------
monit: pidfile '/var/run/monit.pid' does not exist
Starting monit daemon with http interface at [*:3996]


// edit

Hab jetze doch noch was gefunden:

Code:
monit: pidfile '/var/run/monit.pid' does not exist

Könnte das da vlt daran liegen?



vg scrat :rolleyes:
 
Wo ist Dein Problem? Der Service ist gestartet und ein monit-httpd lauscht auf Neue Internetpräsenz. Aus der ersten Zeile
Code:
monit: Debug: Adding host allow 'localhost' (127.0.0.1)
können wir dann wohl entnehmen, dass man diese Seite nur vom vServer aus selber aufrufen kann. Da Du wahrscheinlich nicht mit lynx arbeiten möchtest, musst Du nun nachschauen in der monit-Doku, wie man weitere Hosts hinzufügen kann. Da wäre als erster Schritt Deine lokale IP. Danach aber wieder rausnehmen, falls Du eine dynamische hast.
 
Last edited by a moderator:
Das Problem ist, dass der zwar sagt, dass der gestartet hat, aber wenn ich die "Überwachungsseite" im Browser anschauen will wird nichts angezeigt. Es kommt nur weißes Fenster.
 
Back
Top