(Wiki) Auto-Reboot Task unter Gluon

Hätte gerne wieder die aus der alten Firmware bekannte Auto-Reboot Funktion zurück, die man in der “Scheduled Tasks” eintragen konnte. Hab mir da auch schon ein paar Sachen zu in anderen Foren durchgelesen, aber bekomme das nicht zum Laufen.

Hab den Befehl

*0 */6 * * * sleep 70 && touch /etc/banner && reboot*

in der Datei

*/etc/crontabs/root*

hinterlegt. und den Router neu gestartet.

Es scheint aber so, als bringt das rein gar nix. Der Router startet nicht neu.
Hab zum Bearbeiten des Eintrags WinSPC benutzt, und die ‘root’ Datei direkt bearbeitet.Mit Putty hab ich das leider nicht hinbekommen den Eintrag auch zu speichern.

Hätte da vielleicht einer ne Anleitung die Funktioniert?
Router sollte morgens um 3Uhr neu starten.

EDIT
Eine genaue Schritt-für-Schritt Anleitung wurde mittlerweile im Wiki hinzugefügt!

Hast du eine leere Zeile am ende der Datei?

Nein.
Hab die Zeichenfolge eingegeben, und gespeichert.
Sprich, die Datei ist im Editor nur eine Zeile groß

Vorab: mit Gluon Cron kenne ich mich nicht aus.

Bei machen Linux-Distributionen muss man Tab anstatt Leerzeichen verwenden. Google das mal.

*0 */6 * * *

*0 kenne ich so nicht. Wenn der Router um 3 Uhr neustarten soll, müsste es doch

0 3 * * * ... 

heissen, oder? Um nicht bis 3 Uhr zu warten kannst Du natürlich mit

*/5 * * * ---

(alle 5 Minuten) testen. Und zwar solange, bis der cron überhaupt mal läuft. Ggf. muss noch ein User angegeben werden, der den Befehl ausführt. Viel Erfolg!

Daran liegst. Du musst in der crontab immer eine Leerzeile am Ende der Datei haben. Sonst geht es nicht.

LÖSUNG ! ! !

Es ist viel Einfacher.


Anleitung:


  1. Starte das Programm PuTTY und wähle dich mit der IPv6 deines Routers auf diesem ein:

    Die IPv6 deines Routers findest du über die Knoten-Karte

  2. Log dich mit dem Usernamen root und deinem im Router hinterlegten Passwort ######## auf deinem Knoten ein. (das Passwort wird bei der Eingabe nicht angezeigt!)

  3. Starte nun die Cron-Editor „vi“ mit den Befehl: crontab -e

    Dieser startet im Anzeigemodus

  4. Um in den den Editiermodus zu wechseln drücke die Taste „i“ . Unten links wird dann ein I für INSERT angezeigt.

  5. Nun kannst du in der ersten Zeile deinen Reboot-Befehl eintragen.
    * */6 * * * sleep 70 && touch /etc/banner && reboot

    Pro Zeile 1 neuer Job.
    Die ersten 5 Werte geben die Zeit an, zu der der Job jeweils ausgeführt werden soll. Danach erfolgt der auszuführende Befehl. Die Trennung der Werte erfolgt über ein Leerzeichen:
    Minute(0-59) Stunde(0-23) tagimmonat(1-31) Monat(1-12) Wochentag(0-7) BEFEHL
    Ein*steht als Platzhalter, wenn kein bestimmter Wert gesetzt werden soll
    die Angebe */6 gibt an, dass dieser Wert sich regelmäßig zu einem Intervall von 6 wiederholt. In unserem Fall alle 6 Stunden.
    In unserem Beispiel wird der Router nach Start des Befehls für 70sec schlafen geschickt, bevor er die Zeiteinstellungen neu abgleicht, und das Gerät neu startet. Somit wird sicher ein Bootloop verhindert.

  6. Wenn man alle Befehlszeilen eingegeben hat, den Bearbeitungsmodus mit der Taste „ESC“ verlassen. (Das „I“ für INSERT links unten verschwindet wieder)

  7. Nun muss die Änderung noch gespeichert werden. Hierzu 2x die Taste „Z“ drücken. (GROSSBUCHSTABE!)

  8. Der Editor „vi“ ist nun geschlossen.

  9. PuTTY mit dem Befehl EXIT verlassen.

FERTIG!

1 „Gefällt mir“

Statt einfach „reboot“ in der crontab zu benutzen, würde ich folgendes Konstrukt empfehlen:

sleep 70 && touch /etc/banner && reboot

Siehe auch:
https://forum.ffrn.de/t/schon-wieder-so-viele-offline-knoten/472/9?u=tobox

1 „Gefällt mir“

Du hast natürlich recht.
Anleitung wurde angepasst.

Ich habe es zusätzlich noch ins Wiki mit aufgenommen

3 „Gefällt mir“

Heißt das, ich muss bei jedem Router, bei dem ich das ändern möchte den SSH-Fern-Zugang einschalten?
Falls nein, wie komme ich auf den Router ohne den SSH-Fern-Zugriff zu aktivieren, bzw. wie ist das Passwort?

Kann ich den wieder deaktivieren nach der Änderung am Crontab?
Falls ja, wo und wie?

Fragen über Fragen… Das Thema ist vielleicht auch generell für die FAQ interessant ^^^.

Ja und Nein.

Du musst auf jeden Fall zuerst ein Passwort im Router hinterlegen, damit du mit PuTTY auf die Kiste per SSH zugreifen kannst. Wenn du mit der Bearbeitung fertig bist, löschst du es wieder, und der Fernzugriff ist wieder deaktiviert.

Dazu muss dein Router nicht zwingend in Freifunknetz anmeldet sein.
Es geht auch so (Beispiel TP-Link WR841/ND):

  1. Versetze deinen Router in den CONFIG-MODE in dem du die RESET Taste auf der Rückseite
    des Gerätes 6-7sec lang gedrückt hälst, bis alle LEDs einmal kurz aufblinken.

  2. Verbinde nun deinen Rechner per LAN (gelbe Buchse) mit deinem Router, und schalte dich über deinen Webbrowser mit der IP 192.168.1.1 auf das Gerät auf.
    LuCI öffnet sich.

  3. Wechsle jetzt oben rechts in den Expert Mode / Remoutzugriff

  4. Setze hier unter PASSWORT dein Passwort, und klick auf senden.

  5. Webbrowser NICHT schließen!

  6. Starte PuTTY. Gib folgende Zugangsdaten ein:

    Hostname: 'root@192.168.1.1’
    Port ‘22’.

    PuTTY startet nun und wird dich nach dem vorher im Webinterface vergebenen Passwort
    fragen. (Bei der Passworteingabe werden keine Sternchen oder Platzhalter angezeigt!)

  7. Jetzt hast du Vollzugriff auf den Router, und kannst weiter verfahren wie im Wiki beschrieben.

  8. Wenn du fertig bist, wechsle wieder zurück in den noch geöffneten Webbroser. Hier unter
    PASSWORT das Passwort wieder entfernen, so dass zwei leere Passwortfelder zu sehen sind.
    Erneut auf senden klicken. Es sollte nun mit “Passwort gelöscht” bestätigt werden.

  9. Zurückwechseln in die Ansicht ‘Wizard’, ganz nach unten scrollen, und mit
    ’Speichern & Neustarten’ den Config Mode wieder verlassen.

Fertig.


Wichitg!!!

Wenn du nicht willst, dass man per Fernzugriff auf deinen Router zugreifen kann, musst du unbedingt darauf achten, dass das Passwort wieder gelöscht wurde. Sonnst ist der Knoten mit diesem Passwort per SSH-Fernzugriff weiter über das Freifunknetz mit seiner öffentlichen IPv6 zu erreichen.


1 „Gefällt mir“

Hätte evtl. eine Anregung,

wäre es vielleicht für die nächste Version der Firmware nicht schlecht, wenn der Reboot Task std. eingeschalten ist, dass alle Router std. mäßig um evtl. 2 Uhr nachts durchbooten.
Somit könnte man das aufhängen der Router proaktiv bekämpfen.
Der Reboot dauert ja nicht lange und die Router wären wieder gleich wieder erreichbar.

Wie gesagt wäre das nur eine Anregung…

2 „Gefällt mir“

Nein.
Zum einen betrifft dieses Problem des Netzverlustes nicht alle Router Modelle, zum anderen werden die Router in unterschiedlichen Umgebungen und zu unterschiedlichen Zwecken eingesetzt. Jeder Reboot bedeutet an dieser Stelle auch eine kurze Unterbrechung des Netzes. Anwendungen, Apps oder Onlineangebote, können sich bei einer Netzunterbrechung eventuell aufhängen.
Es kann also durchaus auch Probleme verursachen wenn ein Router zu einer fest vorgegebenen Zeit neu startet. Daher sollte man diese zusätzliche Funktion nur bei Bedarf nutzen, und die Zeit des Befehls den jeweiligen Bedürfnissen anpassen.

Ein Lokal- oder Discobetreiber würde sich nicht besonders freuen, wenn zu seiner Hauptbesuchszeit um 2 Uhr das Gäste-WLAN regelmäßig kurz ausfällt. Für ihn wäre ein Reboot außerhalb der Öffnungszeiten eher sinnvoll.

Es ist ja nicht schwer so einen Befehl im Router zu plazieren.
Ich habe versucht, die Anleitung im Wiki so detailliert und verständlich wie möglich zu formulieren, sodass man damit eigentlich keine Probleme bei der Anwendung bekommen sollte. Wenn einer für den Wiki- Eintrag noch Anregungen hat, dann bitte entsprechend ergänzen.

“Es wird keinen pauschalen Reboot Task geben!”

Falsch. Ich sehe viel viel mehr Knoten die keinen Reboot brauchen als Knoten die einen brauchen. Mein 841N hat zum Beispiel noch nie einen gebraucht. Und nur weil eine mir unbekannte, niedrig zweistellige Zahl an Geräten dieses Problem hat, werde ich nicht auf > 300 Knoten so ein Update ausrollen und alle x Stunden das ganze Netz rebooten lassen.

Du willst also das Opt-In durch einrichten, dadurch ersetzen, dass > 200 andere Leute per SSH einen Opt-Out machen müssen? Sorry aber das ist absolut nicht verhältnismäßig.

1 „Gefällt mir“

Ich stelle es mir fürs Mesh, für die VPN-Verbindungen und damit auch für die Server ziemlich schwierig vor, wenn alle Geräte plötzlich gleichzeitig (hallo, NTP!) weg und wieder da sind und Anfragen stellen. Ein Reboot kann auch immer unvorhergesehene Dinge auslösen, und ein kompletter Reboot aller Geräte erzeugt sicherlich einen Haufen toller Probleme, die wir jetzt garnicht auf dem Schirm haben. Auch deshalb: Nein.

1 „Gefällt mir“

Ich könnte mir auch einen automatischen Reboot zum Beispiel alle 12 Stunden vorstellen.
Da das keine identische Uhrzeit ist, sondern ein “12 Stunden” nach dem letzten Einschalten, wird sich das verteilen. Ein “Neustart des ganzen Netzes” zur einer bestimmten Uhrzeit findet also nicht statt,

Dem Discobetreiber (um das Beispiel aufzugreifen) wird es auch lieber sein, wenn sein Netz läuft und er sich nicht ständig um die Router kümmern muss. Also wird er den Neustart, der weniger als eine Minute dauert sicher verschmerzen.

Ein Netz, das nicht funktioniert ist auf gut Deutsch gesagt Kacke. Bei Leuten, die keine Ahnung haben erzeugt das schnell ein “Ah, da war ich schon mit verbunden, aber irgendwie hat das nicht funktioniert”. Was dann auch zu einem “Freifunk, das funktioniert ja eh nicht” wird.

Ich war eben beim Arzt in der Brückenstraße, konnte das Freifunk-Netz des gleichnamigen Knotens gut empfangen, mich verbinden - alles wunderbar. Eine IP-Adresse habe ich allerdings nicht bekommen und der Knoten wurde auf der Karte als offline angezeigt.

Ja ich weiß, wir sind kein Dienstleister und können kein funktionierendes Netz garantieren. Aber wenn wir wissen, dass es Probleme gibt, wäre es schön wenn wir an einer Lösung arbeiten.

1 „Gefällt mir“

Wenn der Reboot mit Cron durchgeführt wird, dann kann man nur absolute Zeiten eingeben, also zB um 2h nachts. Wenn wir das als Standardwert ins Image packen, dann ist das für alle Knoten gleich. Und dank NTP ist für alle dann gleichzeitig Rebootzeit.

Dass es mit Knoten Probleme gibt und geben kann und geben wird steht nicht zur debatte. Alle Knoten prophylaktisch einfach mal durchstarten löst aber nicht das Problem, dass einige wenige Knoten haben. Deshalb macht es keinen Sinn wegen vergleichsweise wenigen Problemknoten alle Konten zu beeinträchtigen. Wenn jetzt zB der angesprochene Knoten in der Brückenstraße einfach nicht mit einem Uplink verbunden ist, dann hilft da der Reboot auch nicht.

Wenn man Probleme mit einem Knoten hat, dann muss man sich um den Knoten kümmern. Deshalb den 95% funktionierenden Knoten einen Reboot-Task aufzudrücken ist einfach keine Option, da es wiederum neue Fehler produziert.

3 „Gefällt mir“

Meine Meinung hab ich ja schon kund getan.

Ich halte es auch für nicht Zielführend, alle Knoten einen Zwangs-Reboot zu verordnen.
diese Option sollte eine reine Bedarfsoption zur individuellen Anpassung bleiben.

Ich würde es für sinnvoller halten, wenn man wie in der alten Firmware, wieder ein Eingabefeld ins GLUON mit aufnehmen würde. Somit könnten Befehle direkt über das Webinterface mit eingetragen werden, und der Umweg über die SSH Freigabe würde entfallen.
Glaube aber nicht, dass das so einfach umzusetzen ist. Kenn mich mit so Programmier-Sachen halt mal so gar nicht aus.

Aber ich hab es ja geschafft, meinen Reboot Befehl auf die Kiste zu schreiben. Und wenn ich das kann, kann das echt mal jeder
LOL

Auch ich finde Auto-Reboot per Default nicht gut.

Am liebsten wäre es mir, wenn jemand den Fehler finden würde, der dazu führt, dass Knoten abstürzen. Sollte man da mal Statistiken sammeln, welche Knoten wie oft abstürzen? Und dann die instabilen neu Flashen um zu sehen, ob das was ändert? Oder den Standort von stabilen und instabilen tauschen, um zu sehen ob es an der Umgebung liegt oder am Gerät?

Wäre für solche Spielereien zu haben, und habe auch einige Geräte die ich für soetwas verleihen würde.

Wenn man Knoten bei anderen Leuten aufstellt und will keinen Remote-Access aus Gewissensgründen haben, hätte ich noch eine Lösung: Funksteckdose dran und im Fehlerfall beim Vorbeifahren einmal aus- und wiedereinschalten.

Ja, wenn x mal kein Gateway pingbar war einfach einen reboot machen. Funktioniert aber nur bei “leichten” Abstürzen… Sobald sich der Kernel richtig zerlegt läuft auch das Skript nicht mehr.

1 „Gefällt mir“

Der Wiki Eintrag war Fehlerhaft. Er wurde angepasst