Armbian alle zwei Tage in der Nacht durchstarten lassen

chaospir8

★★★★★-Oldie
Hallo Ihr Linux-Kenner,

trotz einigem Linux-Grundwissen bin ich doch eher in der DOS/Windows-Welt "daheim".

Ich habe hier einen Banana Pi mit älterem Armbian seit einigen Jahren laufen gehabt, den ich von @bavariantommy mal geschenkt bekam und aufsetzte.
Er verrichtete jahrelang seinen Dienst sehr gut alt zentraler MySQL/MariaDB-Server für meine Kodi-Geräte und als Host für iobroker, bis nach einem iobroker-Update dieser die Speicherkarte mit Log-Files vollmüllte, was ich nicht mitbekam.
Danach war, trotz einer Aufräumaktion und Filesystem-check und -reparatur meinerseits das Ding nicht mehr operabel und ich musste ihn neu aufsetzen mit einem aktuellen Armbian.

Jetzt läuft er wieder, aber ich habe das Problem, dass das Gerät nach zwei, drei Tagen nicht mehr per Ethernet erreichbar/anpingbar ist und einen Hard Reset/Neustart braucht.

Dadurch, dass es keine gravierende Funktion hat und ein zyklischer Reboot ihm nicht schaden würde und ich auch nicht unbedingt jetzt die Energie habe, nach der Ursache zu forschen oder alles komplett neu aufzusetzen (inkl. Datenbank-Backup und -Restore, sowie iobroker-Neuaufsetzen), Frage:

Wie stelle ich es ein (cron-Job?), dass mir das Gerät alle zwei Tage in der Nacht (z.B. um 2:00 Uhr) neubootet?!
 

ibinsfei

Team (Technik) - BOFH
Mitarbeiter
Code:
0 2 */2 * * /usr/local/bin/myScript
Minute Stunde Tag Monat TagDerWoche script
Damit wird das script jeden geraden Tag im Monat ausgeführt.
 

Brian

Ihr seid alle Individuen.
Du kannst natürlich einfach eine Datei /etc/cron.d/RebootEveryTwoDays anlegen und es so machen wie @ibinsfei schreibt, ich würde den Reboot aber direkt da rein schreiben:
Bash:
0 2 */2 * * root /sbin/shutdown -r now

Um ehrlich zu sein, halte ich aber eine Ursachenforschung für hilfreicher und in Deinem Falls wird es vielleicht ein OOM sein und Du brauchst einfach mehr RAM ;)
 

chaospir8

★★★★★-Oldie
@Brian
Wäre das in irgendeinem Logfile sichtbar? Bei normaler Systemressourcenbeobachtung konnte ich keinen RAM-Mangel erkennen (zumal er sich nicht aufrüstbar ist.
 

Brian

Ihr seid alle Individuen.
Egal was es ist, sollte es sich in den Logs finden lassen.

Wenn Du möchtest kannst Du mir einfach einfach mit "tar -czf /tmp/logs.tgz /var/log/" als root die logs komprimieren und mir auf meine Privatadresse schicken. Dann suche ich mal, ob der Fehler dort nicht zu finden ist.
 

Brian

Ihr seid alle Individuen.
Falls es nicht das Netzteil ist kannst Du das hier versuchen als /etc/cron.d/RebootWhenRooterNotReachable ablegen:

Bash:
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

15 * * * * root ping -q -c 1 192.168.0.1 >/dev/null 2>&1 || shutdown -r now

Stündlich genau um xx:15 Uhr checken ob der Rooter da und wenn nicht rebooten.

Achtung, das nicht früher als 15 Minuten nach der vollen Stunde machen, da diese ARM Kiste eventuell keine Hardwareuhr hat und das sonst zu einem unendlichen Reboot führen kann.
 

chaospir8

★★★★★-Oldie
Alles klar. Als erstes werde ich mal das Netzteil und das Kabel austauschen und wenn nach ein paar Tagen das Ding wieder "down"/nicht erreichbar ist, wird das obige Skript zur Anwendung kommen.
Danke Euch beiden!

Ich berichte dann über den Ausgang des Themas.
 

chaospir8

★★★★★-Oldie
Hallo,
kurzer Zwischenbericht:
Trotz Ausprobierens anderer Netzteile (teilweise um 1 A stärker) ist gleiches Problem zu beobachten.
Ich werde mal das Skript/den Cronjob versuchen.
 

chaospir8

★★★★★-Oldie
Mit dem Skript/Cron-Job funktioniert es gut und das "Computerchen" ist für mich immer erreichbar, wenn ich's brauche.
Danke noch Mal!

Eine Frage hätte ich dennoch noch, @Brian, @ibinsfei
Wo kann ich nachsehen/wo ist ein Log, wann durchgebootet wurde und ist darin erkennbar, ob's aus diesem Skript/Cron-Job angestoßen wurde?
 

Brian

Ihr seid alle Individuen.
Jeder Reboot sollte ja in den syslogs o.ä. zu sehen sein. Debian schreibt alle ausgeführten cronjobs auch nach auth.log.

"uptime" verrät natürlich auch wann das letzte Mal rebootet wurde.

Ansonsten könnte man auch so etwas machen:
Bash:
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

15 * * * * root ping -q -c 1 192.168.0.1 >/dev/null 2>&1 || (echo "Cannot reach Gateway restarting at $(date)" >> /home/chaorpirate8/Reboot.log; shutdown -r now)

Das ist aber knapp vor dem Punkt, wo ich ein Script draus machen würde, da zuviel Logik in einem Einzeiler irgendwann nicht mehr lesbar ist und jedes einzelne Zeichen eine Bedeutung hat....
 
Zuletzt bearbeitet:
Oben Unten