Da an einem Remotestandort eine instabile Internetverbindung ist, habe ich ein Pythonscript gebastelt, das alle paar Minuten prüft, ob der Mount noch da ist und gegebenenfalls neu mountet:
Python
#!/usr/bin/env python3
import os
from time import sleep
def check_ping():
vpnping = os.system("/usr/bin/ping -c 1 10.8.0.1")
if vpnping == 0:
vpnpingstatus = "Ping via VPN erfolgreich"
print(vpnpingstatus)
else:
vpnpingstatus = "Ping via VPN nicht erfolgreich"
print(vpnpingstatus)
hostping = os.system("/usr/bin/ping -c 1 meine.domain.de")
if hostping == 0:
hostpingstatus = "Hostping erfolgreich"
print(hostpingstatus)
else:
hostpingstatus = "Hostping nicht erfolgreich"
print(hostpingstatus)
print("Warte 10 Minuten")
sleep(600)
def mnt_host():
mount = os.system("/usr/bin/mount -t cifs -o credentials=/etc/smbcredentials //10.8.0.1/platte /media/platte")
if mount == 0:
mountergebnis = "Mount erfolgreich"
print(mountergebnis)
print("Schlafe 10 Minuten")
sleep(600)
else:
mounntergebnis = "Mount nicht erfolgreich"
print(mountergebnis)
check_ping()
def main():
while True:
suche_mount = os.system("mount | grep //10.8.0.1/")
if suche_mount == 0:
mountstatus = "Ist noch gemountet"
print(mountstatus)
print("Püfe mount in 2 Minuten wieder")
sleep(120)
else:
mountstatus = "Ist nicht gemountet"
print(mountstatus)
print("Versuche zu mounten")
mnt_host()
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
print("Abbruch durch Benutzer.")
finally:
print("Bye bye")
Display More
Vielleicht hilft es jemandem, der auch solche Probleme hat.
Das Script starte ich mit Verzögerung ganz altmodisch via /etc/rc.local:
/usr/bin/sleep 60 && /usr/bin/python3 /home/pi/check_mount_platte.py > /var/log/check_mount_platte.log 2>&1
Die Datei /etc/smbcredentials sieht so aus, gehört root, Berechtigung 600: