[Ursprungsproblem gelöst]mount.cifs status abfragen

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
mampfi
Beiträge: 1738
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

Beitrag von mampfi » 06.10.2017 20:52:08

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?
Zuletzt geändert von mampfi am 08.10.2017 10:44:38, insgesamt 1-mal geändert.
Es gibt viele Foren

TomL

Re: mount.cifs status abfragen

Beitrag von TomL » 06.10.2017 21:47:47

Als erstes fällt mir ein, den Return-Code vom mount-Vorgang zu prüfen.

Code: Alles auswählen

cat /proc/mounts 
könnte auch eine Lösung sein. Oder als Variante nur die Sources ausgegeben, die man dann grep'n kann:

Code: Alles auswählen

cat /proc/mounts | awk -F ' ' '{ print $1 }'
Um 100% sicher zu sein, könnte man auch auf Existenz einer bestimmten konstanten Datei prüfen:

Code: Alles auswählen

[ -f "FullPathFileName" ] && echo "ja" || echo "nein"

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: mount.cifs status abfragen

Beitrag von MSfree » 06.10.2017 22:01:45

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

mampfi
Beiträge: 1738
Registriert: 16.08.2005 18:15:29
Lizenz eigener Beiträge: GNU General Public License
Wohnort: münchen

Re: mount.cifs status abfragen

Beitrag von mampfi » 06.10.2017 22:22:31

MSfree hat geschrieben: ↑ zum Beitrag ↑
06.10.2017 22:01:45
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
Danke sehr.


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

mampfi
Beiträge: 1738
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

Beitrag von mampfi » 08.10.2017 10:50:00

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
Es gibt viele Foren

TomL

Re: [Ursprungsproblem gelöst]mount.cifs status abfragen

Beitrag von TomL » 08.10.2017 11:11:21

mampfi hat geschrieben: ↑ zum Beitrag ↑
08.10.2017 10:50:00
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"
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.

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.
mampfi hat geschrieben: ↑ zum Beitrag ↑
08.10.2017 10:50:00
ret gab leider auch beim Scheitern 0 aus.
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.

mampfi
Beiträge: 1738
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

Beitrag von mampfi » 08.10.2017 12:51:10

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.
Es gibt viele Foren

TomL

Re: [Ursprungsproblem gelöst]mount.cifs status abfragen

Beitrag von TomL » 08.10.2017 14:20:30

mampfi hat geschrieben: ↑ zum Beitrag ↑
08.10.2017 12:51:10
Der Abschnitt mit dem $PINGTEST funktioniert sicher.
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.

mampfi
Beiträge: 1738
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

Beitrag von mampfi » 08.10.2017 14:53:22

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?
Es gibt viele Foren

BenutzerGa4gooPh

Re: [Ursprungsproblem gelöst]mount.cifs status abfragen

Beitrag von BenutzerGa4gooPh » 08.10.2017 15:00:01

mampfi hat geschrieben: ↑ zum Beitrag ↑
08.10.2017 14:53:22
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?
Und nun lesen wir mal, was wir geschrieben haben und überlegen dann selber.

Spitzfindige Preisfrage: Was, wenn am Zielrechner (NAS) ICMP (echo-request) gedropt wird?

mampfi
Beiträge: 1738
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

Beitrag von mampfi » 08.10.2017 15:24:17

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.
Es gibt viele Foren

TomL

Re: [Ursprungsproblem gelöst]mount.cifs status abfragen

Beitrag von TomL » 08.10.2017 15:52:00

mampfi hat geschrieben: ↑ zum Beitrag ↑
08.10.2017 14:53:22
Wenn man den Ping-Test durch den Mount-Test ersetzt, dann müsste der Mount-Test beide Dinge testen stimmts?
Richtig! Wenn erfolgreich gemountet wurde, ist natürlich auch der Remote-Host verfügbar ... sonst hätte der Mount gefailed.

mampfi
Beiträge: 1738
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

Beitrag von mampfi » 08.10.2017 16:01:22

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 ;-)
Es gibt viele Foren

TomL

Re: [Ursprungsproblem gelöst]mount.cifs status abfragen

Beitrag von TomL » 08.10.2017 17:36:32

mampfi hat geschrieben: ↑ zum Beitrag ↑
08.10.2017 16:01:22
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 ;-)
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
Beiträge: 1738
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

Beitrag von mampfi » 08.10.2017 18:53:09

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

BenutzerGa4gooPh

Re: [Ursprungsproblem gelöst]mount.cifs status abfragen

Beitrag von BenutzerGa4gooPh » 08.10.2017 19:37:17

Irgendwie warte ich gerade noch auf die Erklärung von Jana bzgl. Ihrer Frage ;-)
Ohne ICMP könntest du trotzdem mounten. Wollte damit auch ("andersrum") zeigen, dass der ping-Test allein wenig sagt.
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 ... :wink:

mampfi
Beiträge: 1738
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

Beitrag von mampfi » 08.10.2017 23:14:02

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
Es gibt viele Foren

mampfi
Beiträge: 1738
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

Beitrag von mampfi » 08.10.2017 23:14:59

Nachtrag:

Die Synchronisation zwischen den Rechner geht übrigens so vonstattten:

rsync -a -r -v --delete /media/daten /media/net_mount
Es gibt viele Foren

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: [Ursprungsproblem gelöst]mount.cifs status abfragen

Beitrag von MSfree » 08.10.2017 23:32:57

mampfi hat geschrieben: ↑ zum Beitrag ↑
08.10.2017 23:14:59
rsync -a -r -v --delete /media/daten /media/net_mount
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.

mampfi
Beiträge: 1738
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

Beitrag von mampfi » 09.10.2017 11:57:49

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?
Es gibt viele Foren

letzter3
Beiträge: 444
Registriert: 16.07.2011 22:07:31

Re: [Ursprungsproblem gelöst]mount.cifs status abfragen

Beitrag von letzter3 » 09.10.2017 12:40:38

Ich hatte mal ein ähnliches Problem.
viewtopic.php?p=860935#p860935

Antworten