Guten Tag! Gibt es eine Möglichkeit, einen Timer (Timestamp? Oder was auch immer?) In ein Skript mit bash einzufügen? Wie zum Beispiel; Alle 60 Sekunden überprüft eine bestimmte Funktion, ob das Internet ausgefallen ist. Wenn dies der Fall ist, wird stattdessen eine Verbindung zum WLAN-Gerät hergestellt und umgekehrt. Kurz gesagt, das Programm überprüft die Internetverbindung von Zeit zu Zeit.
Alle Vorschläge / Antworten werden sehr geschätzt. =)
Stumpfe Version
%Vor%Wenn Sie den Sleep selbst als Loop-Bedingung verwenden, können Sie die Schleife beenden, indem Sie den Schlafmodus beenden (d. h. wenn es sich um einen Vordergrundprozess handelt, wird Strg-c ausreichen).
Wenn wir Minuten- oder Stundenintervalle sprechen, wird Cron wahrscheinlich einen besseren Job machen, wie Montecristo darauf hingewiesen hat.
Vielleicht möchten Sie einen man cron erstellen.
Oder wenn Sie nur auf bash bleiben müssen, fügen Sie einfach den Funktionsaufruf in eine Schleife und 60 innerhalb der Iteration ein.
Hier finden Sie ein Skript, das Sie verwenden können, zuerst fügen Sie einen Eintrag zu Ihrem Cron-Job so hinzu:
$ sudo crontab -e * * * * * / Pfad / zu / deinem / Schalter
Dies ist eine einfache Methode, die darauf beruht, dass ein aktiver Server jede Minute ununterbrochen gepingt wird. Wenn der Server nicht erreichbar ist, wird er zum zweiten Router wechseln, der unten definiert ist.
sicherlich gibt es einen besseren Weg, dieses Problem auszunutzen.
$ cat & gt; Umschalter
%Vor%Sie können etwas wie das Folgende tun, aber es ist nicht zuverlässig:
%Vor%Ein Problem mit dieser Technik besteht darin, dass der Trap erst wirksam wird, wenn der aktuelle Task zur Shell zurückkehrt (z. B. den Schlaf 1 durch Schlaf 10 ersetzen). Wenn die Shell die meiste Zeit die Kontrolle hat (zB wenn alle aufgerufenen Befehle schnell beendet werden), kann dies funktionieren. Eine Möglichkeit ist natürlich, alles im Hintergrund laufen zu lassen.
Erstellen Sie ein Bash-Skript, das einmal prüft, ob die Internetverbindung unterbrochen ist, und fügen Sie das Skript in eine Crontab-Aufgabe ein, die alle 60 Sekunden ausgeführt wird.