[Ursprungsproblem gelöst]mount.cifs status abfragen
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
[Ursprungsproblem gelöst]mount.cifs status abfragen
Ich mounte für samba von einem Quellrechner zu einem Zielrechner um später mit rsync das Datenverzeichnis zu synchronisieren.
Beispiel: mount.cifs //notebook/media /media/net_mount -o username=manfred,password=password
Gibt es eine Methode, in einem Skript abzufragen, ob der mount erfolgreich war?
Bzw. bei Misserfolg eine vernünftige Fehlermeldung zu erhalten?
Beispiel: mount.cifs //notebook/media /media/net_mount -o username=manfred,password=password
Gibt es eine Methode, in einem Skript abzufragen, ob der mount erfolgreich war?
Bzw. bei Misserfolg eine vernünftige Fehlermeldung zu erhalten?
Zuletzt geändert von mampfi am 08.10.2017 10:44:38, insgesamt 1-mal geändert.
Es gibt viele Foren und eine Welt ausserhalb
Re: mount.cifs status abfragen
Als erstes fällt mir ein, den Return-Code vom mount-Vorgang zu prüfen.
könnte auch eine Lösung sein. Oder als Variante nur die Sources ausgegeben, die man dann grep'n kann:
Um 100% sicher zu sein, könnte man auch auf Existenz einer bestimmten konstanten Datei prüfen:
Code: Alles auswählen
cat /proc/mounts
Code: Alles auswählen
cat /proc/mounts | awk -F ' ' '{ print $1 }'
Code: Alles auswählen
[ -f "FullPathFileName" ] && echo "ja" || echo "nein"
Re: mount.cifs status abfragen
Meinst du so etwas?
Code: Alles auswählen
#!/bin/bash
mount.cifs \\\\rechner\\freigabe /mountpoint
ret=$?
if test "$ret" != "0"
then
echo "mount.cifs ist fehlgeschlagen"
fi
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: mount.cifs status abfragen
Danke sehr.MSfree hat geschrieben:06.10.2017 22:01:45Meinst du so etwas?
Code: Alles auswählen
#!/bin/bash mount.cifs \\\\rechner\\freigabe /mountpoint ret=$? if test "$ret" != "0" then echo "mount.cifs ist fehlgeschlagen" fi
Ja sowas meinte ich, wobei mir wohl alle Antworten dieses Threads weiterhelfen.
Werde ich demnächst ausprobieren und Bericht erstatten
(Bin momentan nicht an dem betreffenden Rechner

Gibt es bei $? verschiedene Fehlercodes oder nur Fehler und Nicht-Fehler?
(Dient nämlich nur Fehlersuche bei der stretch-Installation)
Es gibt viele Foren und eine Welt ausserhalb
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
So, das Ursprungs-Problem ist gelöst, das Mounten funktionierte nicht, weil die cifs-utils nicht installiert waren.
ret gab leider auch beim Scheitern 0 aus.
Interessanter ist das selbe Parameter, der schon in dem Skript enthalten ist.
Für geneigte Leser ein Auschnitt aus dem Skript:
case "$1" in
w)
mount.cifs //bill/D /media/net_mount -o username=manfred,password=
PINGTEST="bill"
;;
n)
mount.cifs //notebook/media /media/net_mount -o username=manfred,password=manfred#mount.cifs //notebook/daten /media/net_mount -o username=manfred,password=manfred
mount.cifs //notebook/media /media/net_mount -o username=manfred,password=manfred#mount.cifs //notebook/daten /media/net_mount -o username=manfred,password=manfred
PINGTEST="notebook"
;;
2)
mount.cifs //nb2/media /media/net_mount -o username=manfred,password=manfred
mount.cifs //nb2/media /media/net_mount -o username=manfred,password=manfred
PINGTEST="nb2"
;;
esac
echo "ZEITLOG=$ZEITLOG"
echo "USB_STICK=$USB_STICK"
echo "PINGTEST=$PINGTEST"
ping -c 3 $PINGTEST
if [ $? != 0 ]
then
umount /media/net_mount
echo "Rechner ist nicht verfügbar"
exit 0
fi;
sudo root
echo "mount abgeschlossen"
#Hier folgt der rsync auf den anderen Rechner
ret gab leider auch beim Scheitern 0 aus.
Interessanter ist das selbe Parameter, der schon in dem Skript enthalten ist.
Für geneigte Leser ein Auschnitt aus dem Skript:
case "$1" in
w)
mount.cifs //bill/D /media/net_mount -o username=manfred,password=
PINGTEST="bill"
;;
n)
mount.cifs //notebook/media /media/net_mount -o username=manfred,password=manfred#mount.cifs //notebook/daten /media/net_mount -o username=manfred,password=manfred
mount.cifs //notebook/media /media/net_mount -o username=manfred,password=manfred#mount.cifs //notebook/daten /media/net_mount -o username=manfred,password=manfred
PINGTEST="notebook"
;;
2)
mount.cifs //nb2/media /media/net_mount -o username=manfred,password=manfred
mount.cifs //nb2/media /media/net_mount -o username=manfred,password=manfred
PINGTEST="nb2"
;;
esac
echo "ZEITLOG=$ZEITLOG"
echo "USB_STICK=$USB_STICK"
echo "PINGTEST=$PINGTEST"
ping -c 3 $PINGTEST
if [ $? != 0 ]
then
umount /media/net_mount
echo "Rechner ist nicht verfügbar"
exit 0
fi;
sudo root
echo "mount abgeschlossen"
#Hier folgt der rsync auf den anderen Rechner
Es gibt viele Foren und eine Welt ausserhalb
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Das funktioniert so nicht .... zumindest nicht mit der gewünschten Zuverlässigkeit. Du kriegst definitiv keine Fehlermeldung, wenn der Remote-Rechner zwar verfügbar ist, aber der Mount trotzdem fehlgeschlagen ist. Da würde der Rsync einfach still und leise auf den unverbundenen Mountpoint geschrieben werden.... mit anderen Worten: KEIN Backup. Der im Netzwerk erreichbarbare Rechner und ein Mount sind 2 verschiedene Aktionen. Und du kannst nicht mit der einen Aktion den Erfolg einer anderen Aktion überprüfen.mampfi hat geschrieben:08.10.2017 10:50:00ping -c 3 $PINGTEST
if [ $? != 0 ]
then
umount /media/net_mount
echo "Rechner ist nicht verfügbar"
exit 0
fi;
sudo root
echo "mount abgeschlossen"
Es funktioniert nur das, was ich bereits weiter oben gesagt habe und kurz danach auch MSFree.... Return-Code abfragen oder eine andere unzweifelhafte Logik implementieren... z.B. das Vorhandensein eines Status-Files auf dem Remote-Laufwerk überprüfen. Aber ich hatte mit dem Return-Code auch noch nie Probleme... ich halte das für ausreichend. Und was "sudo" in einem solchen Script zu suchen hat, erschließt sich mir auch nicht... meiner Meinung nach hat das darin gar nix verloren.
Bist Du sicher, dass Du den richtigen Ret-Code abgefragt hast? Das funktioniert nämlich NUR direkt nach dem Mount, solange KEIN anderer Befehl abgesetzt wurde.... also nur genau so, wie in MSfree's Beispiel beschrieben.
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Dass sich die beiden Return-Codes beissen war auch mein Verdacht, Asche auf mein Haupt, das habe ich jetzt mit der "anderen Problemlösung nicht weiterverfolgt"
Der Abschnitt mit dem $PINGTEST funktioniert sicher.
Problematisch ist das exit(0) weil ich das Skript als Root ausführe und er beim Scheitern zwar aus dem Skript aussteigt, ich aber dann als user manfred in meinem Home-Verzeichnis steht.
Funktioniert die Erfolgsabfrage auch wenn der Zielrechner nicht eingeschaltet ist?
Dann könnten wir bei interessierten Teilnehmern den ping-abschnitt komplett durch einen mount-Abschnitt ersetzen.
Der Abschnitt mit dem $PINGTEST funktioniert sicher.
Problematisch ist das exit(0) weil ich das Skript als Root ausführe und er beim Scheitern zwar aus dem Skript aussteigt, ich aber dann als user manfred in meinem Home-Verzeichnis steht.
Funktioniert die Erfolgsabfrage auch wenn der Zielrechner nicht eingeschaltet ist?
Dann könnten wir bei interessierten Teilnehmern den ping-abschnitt komplett durch einen mount-Abschnitt ersetzen.
Es gibt viele Foren und eine Welt ausserhalb
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Nein, tut er nicht.... zumindest nicht für Deine Absichten.... der Ping funktioniert auch dann erfolgreich, wenn das Laufwerk nicht gemountet ist. Deshalb, weil der Ping mit dem Mount absolut überhaupt nichts zu tun hat. Der Ping ist reine Netzwerktechnik, also lediglich via ICMP-Protokoll ein ECHO_REQUEST auf einen entfernten Host zu senden. Ob da Mounts bestehen oder nicht oder verfügbar sind oder nicht, hat dabei keine Bedeutung. 'Wenn der Host antwortet, war der Ping erfolgreich... und der Host antwortet immer, auch ohne vorherige Mounts.
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Ja da ich mich mißverständlich ausgedrückt, der Ping testet ja nur auf "Eingeschaltetheit" des Zielrechners.
Der ping ist ja die einfachste Ebene, wenn der nicht geht, dann geht sonst überhaupt nichts.
Wenn man den Ping-Test durch den Mount-Test ersetzt, dann müsste der Mount-Test beide Dinge testen stimmts?
Der ping ist ja die einfachste Ebene, wenn der nicht geht, dann geht sonst überhaupt nichts.
Wenn man den Ping-Test durch den Mount-Test ersetzt, dann müsste der Mount-Test beide Dinge testen stimmts?
Es gibt viele Foren und eine Welt ausserhalb
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Und nun lesen wir mal, was wir geschrieben haben und überlegen dann selber.mampfi hat geschrieben:08.10.2017 14:53:22Der ping ist ja die einfachste Ebene, wenn der nicht geht, dann geht sonst überhaupt nichts.
Wenn man den Ping-Test durch den Mount-Test ersetzt, dann müsste der Mount-Test beide Dinge testen stimmts?
Spitzfindige Preisfrage: Was, wenn am Zielrechner (NAS) ICMP (echo-request) gedropt wird?
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Jetzt besprechen wir Dinge, die mit großer Sicherheit nicht eintreten, weil der Verwalter des Zielredhners derselbe ist und nach der Installation nichts Großartiges verändert.
Kann man vor dem Ping abtauchen?
Ich antworte mal laienhaft: Beide Abfragen zur mount-Abfrage zu vereinigen geht nicht.
Kann man vor dem Ping abtauchen?
Ich antworte mal laienhaft: Beide Abfragen zur mount-Abfrage zu vereinigen geht nicht.
Es gibt viele Foren und eine Welt ausserhalb
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Richtig! Wenn erfolgreich gemountet wurde, ist natürlich auch der Remote-Host verfügbar ... sonst hätte der Mount gefailed.mampfi hat geschrieben:08.10.2017 14:53:22Wenn man den Ping-Test durch den Mount-Test ersetzt, dann müsste der Mount-Test beide Dinge testen stimmts?
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Das wäre dann der Anlass, das Skript noch vor dem (endgültigen) Umzug auf die "Stretch-Platte" zu verbessern.
Irgendwie warte ich gerade noch auf die Erklärung von Jana bzgl. Ihrer Frage
Irgendwie warte ich gerade noch auf die Erklärung von Jana bzgl. Ihrer Frage

Es gibt viele Foren und eine Welt ausserhalb
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Wenn nur Du allein selbst die Hand an diesem Remote-Rechner hast, dann wird da auch nix gedropt.... es sei denn, Du hast bewusst eine Firewall oder IPtables eingerichtet. Von alleine drop't sich da nix. Außerdem halte ich das auch nicht wirklich für clever, ICMP generell zu drop'n.mampfi hat geschrieben:08.10.2017 16:01:22Das wäre dann der Anlass, das Skript noch vor dem (endgültigen) Umzug auf die "Stretch-Platte" zu verbessern.
Irgendwie warte ich gerade noch auf die Erklärung von Jana bzgl. Ihrer Frage
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Gansu so isses, so Firewall-Zeugs hab ich nicht mehr eingerichtet seit SuSe-Zeiten, mit dem yast, da hatte ich nur die Öfffnungen aufgemacht, die ich brauche.
Es gibt viele Foren und eine Welt ausserhalb
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Ohne ICMP könntest du trotzdem mounten. Wollte damit auch ("andersrum") zeigen, dass der ping-Test allein wenig sagt.Irgendwie warte ich gerade noch auf die Erklärung von Jana bzgl. Ihrer Frage
Aber:
Wenn du ein Script mit mehreren Tests/Zwischenschritten nacheinander machst, könntest du Fehlerausgaben zeigen:
kein echo-reply: -> Zielhost nicht erreichbar
Fehlschlag Porttest mit z. B. telnet: -> Samba läuft nicht (Habe jetzt nicht nach Ports oder Einzelheiten geschaut.)
Fehlschlag Mount: -> Laufwerk prüfen!
Dateivergleich Quelle vs. Ziel erfolgreich: -> Backup erfolgreich, beruhigt in Kneipe gehen!
Also in Verbindung mit mehreren Tests ist dein ping-Test im Script recht sinnvoll. Ich habe dabei sowas wie journalctl im Sinn ...

-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Ja ich hab den Thread mit "Ursprungsproblem gelöst" markiert, da ich hier, SORRY, zwei Probleme in einen Thread verschachtelt hab.
1) Das mount-Problem
2) Fehlersuche mittels rsync-Skript
Also um nicht zu verwirren: In meinem Hauptrechner neo befindet sich ein Wechselrahmen.
Platte 1: debian jessie
Platte 2: debian stretch
Somit kann ich auf der alten Installation "spicken"
ich synchronisiere das Datenverzeichnis vom Rechner neo auf den Rechner notebook (immer debian jessie) das Datenverzeichnis.
Vom Rechner neo mit jessie hats geklappt
vom Rechner neo mit stretch hats nicht geklappt
Das eigentlich Problem war: Warum mountet neo stretch nicht auf den Notebook?
Und so wollte ich das Skript so umstricken, dass es mir bei der Fehlersuche hilft
Pointe: auf neo stretch waren die cifs-utils nicht installiert
Neugier-Frage:
Gibt es bei dem Rückgabewert nur 0 oder 1, für Fehler oder Nicht Fehler.
In Programmiersprachen gibt es ja spezifische Fehlercodes
1) Das mount-Problem
2) Fehlersuche mittels rsync-Skript
Also um nicht zu verwirren: In meinem Hauptrechner neo befindet sich ein Wechselrahmen.
Platte 1: debian jessie
Platte 2: debian stretch
Somit kann ich auf der alten Installation "spicken"
ich synchronisiere das Datenverzeichnis vom Rechner neo auf den Rechner notebook (immer debian jessie) das Datenverzeichnis.
Vom Rechner neo mit jessie hats geklappt
vom Rechner neo mit stretch hats nicht geklappt
Das eigentlich Problem war: Warum mountet neo stretch nicht auf den Notebook?
Und so wollte ich das Skript so umstricken, dass es mir bei der Fehlersuche hilft
Pointe: auf neo stretch waren die cifs-utils nicht installiert
Neugier-Frage:
Gibt es bei dem Rückgabewert nur 0 oder 1, für Fehler oder Nicht Fehler.
In Programmiersprachen gibt es ja spezifische Fehlercodes
Es gibt viele Foren und eine Welt ausserhalb
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Nachtrag:
Die Synchronisation zwischen den Rechner geht übrigens so vonstattten:
rsync -a -r -v --delete /media/daten /media/net_mount
Die Synchronisation zwischen den Rechner geht übrigens so vonstattten:
rsync -a -r -v --delete /media/daten /media/net_mount
Es gibt viele Foren und eine Welt ausserhalb
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Ich frage mich da allerdings, warum du das so kompliziert machst. rsynch kann doch direkt über das Netz synchronisieren, da braucht man doch gar kein Netzlaufwerk zu mounten.
-
- Beiträge: 1986
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Also ich hoffe, ich habe niemand verwirrt mit den Wechselrahmen.
Um ehrlich zu sein, wäre ich froh, wenn das neue stretch mit den bewährten Installationen wieder so funktioniert wie jessie.
Wie meinst Du über Netz?
Um ehrlich zu sein, wäre ich froh, wenn das neue stretch mit den bewährten Installationen wieder so funktioniert wie jessie.
Wie meinst Du über Netz?
Es gibt viele Foren und eine Welt ausserhalb
Re: [Ursprungsproblem gelöst]mount.cifs status abfragen
Ich hatte mal ein ähnliches Problem.
viewtopic.php?p=860935#p860935
viewtopic.php?p=860935#p860935