Skript ausführen, wenn die Netzwerkverbindung besteht

Skript ausführen, wenn die Netzwerkverbindung besteht

Ich betreibe eine Reihe von Debian Jessie-basierten Servern und brauche eine zuverlässige Möglichkeit, ihre lokale Netzwerk-IP-Adresse hochzuladen, wenn die Netzwerkverbindung hergestellt ist. Ich habe ein Skript geschrieben, das dies tut, und es als systemd-Dienst registriert:

[Unit]
Description=Server Registration
Requires=network.target network-online.target
After=network.target network-online.target

[Service]
ExecStart=<script-location>
Type=simple
Restart=on-failure
WatchdogSec=21600

[Install]
WantedBy=multi-user.target

Wenn dies wie erwartet funktionieren würde, wäre dies leider keine Frage bei SO. Das Skript verwendet den routeBefehl, um das standardmäßig verwendete Netzwerkgerät zu ermitteln, kann jedoch nicht ausgeführt werden, da die Route beendet wird, da das Netzwerk noch nicht aktiv ist. Außerdem kann das System ohne Netzwerkverbindung hochfahren und erst später verbunden werden, sodass das Skript jedes Mal ausgelöst werden muss, wenn das Netzwerk aktiv ist.

Das Netzwerk wird mit systemd-networkd eingerichtet.

Wie kann ich sicherstellen, dass mein Skript ausgeführt wird, wenn das Netzwerk verfügbar ist, und nicht vorher?

verwandte Informationen