Cronjob - Problem

  • HeyLeute,
    ich habe mir einen DayZ Server auf Linux aufgesetzt und diesen lasse ich nun alle 6 Stunden via Cron neu starten. Allerdings wird der Server nicht einmal sondern mehrfach neu gestartet. Woran das liegt weiß ich leidernicht. Wenn ich die Datei, die Cron automatisch ausführen soll, manuell ausführe passiert genau das was er machen soll. Er startet EINMAL neu + Löscht die Log Dateien + Räumt meine Datenbank auf + Speichert Spielerprofile in meinem Cache


    Hier mal mein Cronjob (Server soll sich um 0,6,12,18 Uhr neustarten):

    Code
    * 0,6,12,18 * * * /home/run/epochserver/restart.sh >/dev/null 2>&1




    in der Datei restart.sh steht nun folgendes:

    Bash: restart.sh
    #!/bin/bash
    cd /home/run/epochserver/
    ./cleanup_sql.pl
    ./dellog.sh
    ./restarter.pl


    Was die Dateien machen erklärt sich ja eigentlich von selbst. cleanup_sql.pl räumt meine Datenbank auf und entfernt alle unützen Einträge. Die dellog.sh Datei entfernt alle Einträge aus den Log Dateien da einige nach nur wenigen Minuten sehr groß werden, habe ich das so eingerichtet. Leider kann man bei DayZ und vor allem bei Battleye kein Loglevel einstellen darum diese Lösung. Die restarter.pl ist die eigentliche "restart"-Datei. Sie speichert den cache der Spieler richtig ab und startet den Server neu. Welche Datei das Problem verursacht oder ob es wirklich nur am Cronjob liegt kann ich leider nicht sagen da brauch ich euch. Nur um alles zu zeigen hier mal noch die anderen Dateien:


    cleanup_sql.pl:


    restarter.pl:


    dellog.sh:


    Kann mir irgendjemand sagen warum beim manuellen ausführen von "restart.sh" der Server genau so restartet wird wie es sein soll und bei einem automatischen Restart wird er ca eine Stunde lang ständig an und abgeschalten? (So war es zumindest heute Früh mit dem 6Uhr restart. Ab 7 Uhr lief dann der Server wieder bis zum 12Uhr restart und nun geht es gerade wieder von vorne los :( )


    Danke schonmal für eure Hilfe






    Edit:
    Übrigens:
    Zuerst dachte ich der Server stürzt einfach ab durch z.B. falsche Einstellungen im Spiel oder einem Fehler im Script oder so. Aber dies ist nicht so. Bei einem Absturz würde sich die Screen Session einfach beenden und gut. Hier wird ja eine neue Session gestartet und daher weiß ich das der Gameserver von "Außerhalb" neugestartet wird (cron z.B.)

    Einmal editiert, zuletzt von Takiry () aus folgendem Grund: Edit hinzugefügt.

  • Probier das mal so



    Code
    0 0,6,12,18 * * * /home/run/epochserver/restart.sh >/dev/null 2>&1

    startet genau um 06:00, .. einmal



    bei einem Stern wäre es 06:01 , 06:02 ...


    siehe dazu auch


    https://www.stetic.com/develop…l-und-crontab-syntax.html




    Zitat

    Ein Stern * bedeutet Ausführung wird immer erfolgen, also zu jeder Minute, jeder Stunde, jedem Tag, jedem Monat oder jedem Wochentag. Um die einzelnen Stellen auseinander zu halten, hilft folgendes Diagram:

  • Das habe ich jetzt mal so umgestellt. Es kann gut möglich sein, dass er jede Minute neu startet. Ich habe den nächsten Restart mal auf 14uhr vorgezogen und gebe euch dann mal Bescheid. Danke für die schnelle Hilfe.


    //Nachtrag:


    Tja was soll ich sagen? Ich mache mir die Mühe einen ewig Langen Text zu schreiben und euch alles zu erklären und was hätte ich tun müssen? Einfach aus einem Stern eine 0 machen :D


    -> Klappt alles Wunderbar. Danke dafür. Ich habe mir das mit dem Cron auch nochmal angesehen. Du hast natürlich vollkommen recht. der Server wurde dann ab 6uhr bis 7 uhr jede minute einmal restartet weil da ein * und keine 0 stand...


    //Bin raus und nochmal Danke.

    Einmal editiert, zuletzt von Takiry ()