sudo mount -a x Minuten nach Boot ausführen

Stationary

Well-known member
Hintergrund: ein Pi5 mit RasPiOS bookworm hängt per LAN-Kabel an einem Repeater (ein AVM 1260E in Repeater-Konfiguration mit abgeschalteter Powerline). Beide Geräte werden gemeinsam per Hauptschalter eingeschaltet. Auf dem Pi wird per fstab eine share einer Synology Diskstation gemountet.
Problem: der Pi bootet schneller, als der Repeater startet und eine Netzwerkverbindung aufbaut. So bekommt der Pi zuerst eine 192.168.178er Adresse, bevor ihm eine Adresse aus dem richtigen Netzwerkbereich zugewiesen wird. fstab ist dann natürlich schon gelaufen und die share wird nicht gemountet.
Somit muß man also manuell ein “sudo mount -a” hinterherschieben.
Läßt sich das sinnvoll per cron mit @reboot und sleep 360 sec && sudo mount -a automatisieren oder gibt es da Eurer Meinung nach einen besseren Weg?
 
Hätte ich als flotte Lösung auch erstmal so gemacht, alternativ kannste natürlich hingehen und via ping schauen, ob das Remote-Ziel verfügbar ist (dann aber besser trotzdem noch ein paar Sekunden drauf, damit der SMB/NFS-Dienst auch oben ist). Alternativ dazu könntest Du - soll ja nicht langweilig werden - auch via netcat (nc) oder nmap schauen, ob die benötigten Ports an der Remote-Kiste schon verfügbar sind (dann läuft halt auch der entsprechende Dienst).
 
Ich hab da mal kurz was zusammengeschustert...
Bash:
#!/bin/bash
while ! nc -z <VM-IP> 22; do
        sleep 1 && echo "is down"
done
echo "is up"

Ergebnis:
is down
is down
is down
is down
is down
is down
is up
(Beispiel mit einer initial ausgeschalteten VM als Ziel)

Für Dich wäre das dann also irgendwas in diese Richtung:
Bash:
#!/bin/bash
while ! nc -z <Syno-IP> 2049; do
        sleep 1
done
mount -a

Statt "-z" kannste auch ein "-vz" machen, da kriegste dann auch entsprechend eine Meldung ausgeben (das Beispiel oben von mir war nur exemplarisch mit einer eigenen Nachricht). Das würde dann mit "v" so aussehen:
nc: connect to X.X.X.X port 22 (tcp) failed: No route to host
nc: connect to X.X.X.X port 22 (tcp) failed: No route to host
nc: connect to X.X.X.X port 22 (tcp) failed: No route to host
nc: connect to X.X.X.X port 22 (tcp) failed: Connection refused
nc: connect to X.X.X.X port 22 (tcp) failed: Connection refused
Connection to X.X.X.X 22 port [tcp/ssh] succeeded!
Das würde ich aber maximal beim testen drin lassen, ansonsten kann das eigentlich raus... Handelt ja eh nach dem Prinzip: Entweder ist das gewünschte nicht vorhanden, dann wird einfach weiter getestet, oder es ist vorhanden und dann wird etwas ausgeführt und das ganze beendet.

Was das "sudo" angeht, weiss ja nicht, mit welchem Benutzer Du da so unterwegs bist und mit welchen Rechten, aber im Zweifel kannst Du auch via "sudo -u <user> <befehl>" etwas im Kontext eines anderen Benutzers ausführen (ohne dafür jetzt extra groß das Konto zu wechseln).

Wünsche viel Erfolg! 😊
 
Probiere ich am Montagabend mal aus, ich sitze gerade im Zug und der Schalter ist mechanisch, kann den also jetzt nicht remote schalten und die Zeit hier zum Testen nutzen.
Vielen Dank für das script, klingt nach einem sehr guten Plan, den mount-Befehl kontrolliert laufen zu lassen und nicht einfach blind auf gut Glück.
Das bash script würde ich dann ausführbar machen und auch über cron starten, oder?
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
5.688
Beiträge
55.680
Mitglieder
5.566
Neuestes Mitglied
TheEagle
Zurück
Oben