Benutzer-Werkzeuge

Webseiten-Werkzeuge


aos-r8-omniswitch-crontab-cron-cronjob-reboot

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
aos-r8-omniswitch-crontab-cron-cronjob-reboot [2024/07/19 12:18] – angelegt bennyaos-r8-omniswitch-crontab-cron-cronjob-reboot [2024/07/21 12:33] (aktuell) – [Vorbereitung: cron.cfg] benny
Zeile 3: Zeile 3:
 In seltenen Fällen kann es notwendig sein nach einem Reboot des OmniSwitch eine Route zu entfernen und neu zu konfigurieren um L2GRE Tunneln zu helfen. Dieser Artikel beschreibt exemplarisch, wie dies per cron-job möglich ist. In seltenen Fällen kann es notwendig sein nach einem Reboot des OmniSwitch eine Route zu entfernen und neu zu konfigurieren um L2GRE Tunneln zu helfen. Dieser Artikel beschreibt exemplarisch, wie dies per cron-job möglich ist.
  
-===== Konfiguration des Cronjob ===== +Dieser Artikel wurde auf folgenden System/AOS getestet:
-<WRAP center round important 60%> +
-Ich habe aktuell noch Schwierigkeiten mit dem @reboot. Muss ich bei nächster Gelegenheit prüfen und korrigieren. +
-</WRAP> +
- +
-<WRAP center round tip 60%> +
-Es ist wichtig das korrekte "working" (running)-Verzeichnis zu wählen! +
-</WRAP> +
 <code> <code>
--> appmgr start ams cron-app argument '1 @reboot /bin/python3 /flash/python/restore-route.py'+-> show system  
 +System: 
 +  Description:  Alcatel-Lucent Enterprise OS6465T-P12 8.9.96.R04 Service Release, April 05, 2024., 
 +  Object ID:    1.3.6.1.4.1.6486.801.1.1.2.1.15.1.4, 
 +  Up Time:      0 days 0 hours 42 minutes and 52 seconds, 
 +  Contact:      Benny,
 </code> </code>
  
-<code> +===== Vorbereitung der Python-Dateien =====
--> vi /flash/working/pkg/ams/cron.cfg +
-</code>+
  
-Am Ende der Liste folgendes Kommando einfügen. Der Eintrag hinter ''sleep'' in Sekunden sorgt für eine Verzögerung nach dem Start bevor das Kommando ausgeführt wird. +==== Vorbereitung: cron-handler.py ====
-<code> +
-@reboot /bin/python3 /flash/python/restore-route.py +
-</code>+
  
-===== Exemplarisches Python Skript um Route zu entfernen/ hinzuzufügen ===== +Diese Datei wird verwendet um aus dem "Linux-Context" in den "AOS-Context" zu wechseln und dort das eigentliche Skript auszuführen das exemplarisch eine Route entfernt und wieder hinzufügt. 
-<file python restore-route.py>+ 
 +Der Pfad zu dieser Datei muss dieser sein: ''/flash/python/cron-handler.py'' 
 + 
 +<file python cron-handler.py> 
 +#!/usr/bin/env python3 
 +import subprocess 
 + 
 +# This is a helper script meant to be used with the AOS R8 ams cron-app 
 + 
 +
 +# Do not modify below this line 
 +
 +def aos_context_command(cmd): 
 +    subprocess.Popen(cmd, shell=True, executable='/bin/jail'
 + 
 +aos_context_command('python3 /flash/python/restore-route-reboot.py'
 +</file> 
 + 
 +==== Vorbereitung: restore-route-reboot.py ==== 
 + 
 +Diese Datei ist dafür verantwortlich eine statische Route zu entfernen und wieder hinzuzufügen. 
 + 
 +Der Pfad zu dieser Datei muss dieser sein: ''/flash/python/restore-route-reboot.py'' 
 + 
 +<WRAP center round tip 60%> 
 +In dieser Datei müssen Änderungen durchgeführt und auf die persönlichen Bedürfnisse angepasst werden! 
 +</WRAP> 
 + 
 +<file python restore-route-reboot.py>
 #!/usr/bin/env python3 #!/usr/bin/env python3
 import subprocess import subprocess
Zeile 32: Zeile 52:
 # This script removes a route and adds it again to address a timing issue # This script removes a route and adds it again to address a timing issue
 # for L2GRE tunnels # for L2GRE tunnels
 +
 +# The script is only meant to be run via the AOS R8 ams cron-app
 +# See https://dokuwiki.alu4u.com/doku.php?id=aos-r8-omniswitch-crontab-cron-cronjob-reboot for details
  
 # #
-# Adapt to your needs+# Adapt the following to your needs
 # -Benny  # -Benny 
  
Zeile 49: Zeile 72:
 # Do not modify below this line # Do not modify below this line
 # #
-print("Script was started via cron following a reboot, resetting route to help L2GRE tunnels") 
  
 subprocess.run(['no', 'ip', 'static-route', f'{destination}/{mask}', 'gateway', f'{gateway}'], capture_output=False) subprocess.run(['no', 'ip', 'static-route', f'{destination}/{mask}', 'gateway', f'{gateway}'], capture_output=False)
-print(f"Removed route to {destination}/{mask} via {gateway}") 
  
 subprocess.run(['ip', 'static-route', f'{destination}/{mask}', 'gateway', f'{gateway}'], capture_output=False) subprocess.run(['ip', 'static-route', f'{destination}/{mask}', 'gateway', f'{gateway}'], capture_output=False)
-print(f"Added route to {destination}/{mask} via {gateway}")+</file> 
 + 
 +===== Konfiguration des Cronjob ===== 
 + 
 +<WRAP center round tip 60%> 
 +Es ist wichtig das korrekte "working" (running)-Verzeichnis zu wählen, in diesem Fall "working"! Diese Anleitung geht außerdem davon aus, dass dies die einzige Aufgabe für die cron-app ist - wenn nicht muss die @reboot-Zeile ganz ans Ende der Datei. 
 +</WRAP> 
 + 
 +<WRAP center round important 60%> 
 +Ich habe Schwierigkeiten mit dieser Vorgehensweise festgestellt wenn die cron-app bereits mit einem "argument" z.B. ''appmgr start ams cron-app argument "1 /bin/ping -c 3 192.168.2.1"'' verwendet wurde. In diesem Fall würde ich davon abraten, es sollte immer nur ''appmgr start ams cron-app'' zum Starten verwendet werden und die Änderungen in der cron.cfg in "crontab"-Syntax händisch durchgeführt werden. 
 +</WRAP> 
 + 
 +==== Vorbereitung: cron.cfg ==== 
 + 
 +Dieser Eintrag sorgt dafür dass nach einem Neustart des OmniSwitch 30 Sekunden gewartet wird (sleep 30), danach aus dem Linux-Kontext die Python-Datei "cron-handler.py" aufgerufen wird, die in den AOS-CLI-Kontext wechselt und die exemplarische Route entfernt/hinzufügt, gefolgt mit einem Eintrag der Ausgabe von "date" in der Datei /flash/finished-boot.txt. 
 + 
 +Der Pfad zu dieser Datei muss dieser sein: ''/flash/working/pkg/ams/cron.cfg'' 
 +<file bash cron.cfg> 
 +@reboot sleep 30 && python3 /flash/python/cron-handler.py && date >> /flash/finished-boot.txt
 </file> </file>
  
aos-r8-omniswitch-crontab-cron-cronjob-reboot.1721391509.txt.gz · Zuletzt geändert: 2024/07/19 12:18 von benny

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki