per bash-script prüfen, ob laufwerk gemountet oder nicht

Post Reply
Message
Author
Stephan

per bash-script prüfen, ob laufwerk gemountet oder nicht

#1 Post by Stephan »

Hallo zusammen !

Ich gebe es offen zu. In Sachen Bash-Programmierung bin ich ein Schwachmat <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle"> Daher hier meine Anfrage.

ich möchte die Ausführung eines Scriptes davon abhängig machen, ob ein bestimtes Laufwerk gemountet ist.

so in etwa

if ($drive_mountet)
{
runscript;
}
else
{
echo "Laufwerk nicht gemountet !";
}


Wie kann ich das mit einem Bash-Script umsetzten ?

Danke ... Stephan !

scripter

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#2 Post by scripter »

In `/proc/mounts' stehen doch alle gemounteten Dateisysteme. Das Format ist selbsterklärend bzw. fstab-like.

Stephan

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#3 Post by Stephan »

Hoi !

Das ist schonmal ein Hinweis, danke.
Allerdings kenne ich mich mit der Programmierung zu wenig aus, als das ich das selber hinbekommen würde.

Grüße, Stephan !

joergg
Posts: 12
Joined: 12. Sep 2002 22:27
Location: Naehe LM

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#4 Post by joergg »

#!/bin/sh

if cat /proc/mounts | grep /dev/hda1 > /dev/null; then
echo "gemountet"
else
echo "nicht gemountet"
fi
exit 0

setze an /dev/hda1 ein mountpoint deiner wahl

scripter

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#5 Post by scripter »

Wenn /dev/fd0 unter /mnt/dev/hda1 gemountet ist, sagt joersch's Script ebenfalls: /dev/hda1 ist gemountet ...

joergg
Posts: 12
Joined: 12. Sep 2002 22:27
Location: Naehe LM

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#6 Post by joergg »

@scripter:

das script war als denkanstoss zu betrachten, wie diese sache einfach geloest werden koennte,
nicht als alle-eventualitaeten-abdeckendes-super-programm
ich vermisse allerdings in deinem posting deinen loesungsvorschlag <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Gruss

Jochen

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#7 Post by Jochen »

Ein paar Kommentare meinerseits:

<li>/proc/mounts würde ich nicht verwenden. Jeder User darf "mount" ohne Argumente aufrufen und erhält dann eine Liste der gemounteten Dateisysteme; das ist standardisiert und funktioniert so unter Solaris, HP-UX, AIX, *BSD und sogar unter Linux! <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle"> Wer weiss, ob /proc/mounts in Linux 2.6 noch existiert...

<li><flame>Wann stirbt endlich dieses unsägliche "cat datei | kommando" aus? Ein einfaches "kommando < datei" ist im Endergebnis effektiver, da kein Prozess für das unnütze "cat" gestartet werden muss.</flame> Kein persönlicher Vorwurf, joersch, aber das musste mal raus... Wenn man wie o.a. portabel arbeitet, ersetzt man das cat auch nur durch ein mount, aber es würde ja auch niemand auf die Idee kommen, ein "mount | cat | grep" zu programmieren, oder? <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

<li>scripter hat schon recht mit seinem Einwand, dass in dem Skript noch ein Problemchen drinne steckt, joersch mit seiner Antwort auch - nur keiner gibt dann die wirklich einfache Lösung vor? Also:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">#!/bin/sh

if mount | grep '^/dev/hda1 ' >/dev/null 2>&1 ; then
echo "gemountet"
else
echo "nicht gemountet"
fi
exit 0</font><hr></pre></blockquote>
Also mount statt des "cat /proc/mounts" und einen korrekten Regulären Ausdruck zum grep, der nur Treffer ab Zeilenanfang (^) von /dev/hda1, gefolgt von einem Leerzeichen zulässt. Das Leerzeichen ist notwendig, damit ein gemountetes /dev/hda11 nicht zum Treffer wird.

Na ja, habe ich mal wieder den Oberlehrer raushängen lassen... Sorry nochmals.

Jochen

joergg
Posts: 12
Joined: 12. Sep 2002 22:27
Location: Naehe LM

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#8 Post by joergg »

@jochen:

wieder was dazugelernt: statt cat datei | grep xxx -> grep xxx < datei
danke

zu mount <-> cat /proc/mount : ich hatte schon den fall, das beide kommandos unterschiedliche ergebnisse ergaben: mount liest /etc/mtab aus, (versuche: echo "/dev/sdc5 /mnt ext3 rw 0 0 >> /etc/mtab" ; mount)
mount muss also nix mit der wirklichen situation in deinem rechner zu tun haben (problem wie gesagt selbst gehabt, def. festplatte wurde immernoch angezeigt obwohl physikalisch umountet)
daher meine tendenz zu /proc/mounts

inzwischen duerfte stephan genuegend material zusammenhaben um was eigenes zu schreiben <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
alle haben was gelernt (ich zumindestens), was ja sinn eines forums sein sollte, keine fertigen
abschreib-loesungen sondern denkanstoesse,

Danke Jörg

Jochen

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#9 Post by Jochen »

Hmmmja, die (englische) Manual-Page zu mount(8) geht auf den Unterschied von /proc/mounts und /etc/mtab ein. Prinzipiell hast Du ja recht, allerdings ist m.E. der Fall, dass /proc/mounts und /etc/mtab auseinanderlaufen, ziemlich pathologisch.

So etwas kann passieren, wenn das root-Dateisystem read-only gemountet ist. Das bedeutet, dass man entweder mittels "init=/bin/sh" gebootet hat (init gelöscht?!?) oder der fsck einen auf die Shell geschmissen hat, weil er das root-FS nicht alleine reparieren kann. In beiden Fällen wird man erst mal kräftig Hand anlegen müssen, um das System wieder flott zu kriegen und sich nicht um irgendwelche User-Skripte kümmern, die erst wieder laufen, wenn die Kiste zur Gänze wieder flott ist.

Und wie in Deinem Beispiel an der Datei händisch Änderungen vorzunehmen - na, das war halt ein Beispiel, nicht? Kein denkender Admin macht sowas an seinem System.

Und zu guter letzt denke ich immer an die vielen Systeme, die statt einer /etc/mtab eine /etc/mnttab haben oder die gar kein /proc/mounts besitzen, auf denen aber "mount" immer die gewünschte Ausgabe liefert... Heterogene Netze bringen einen auch in der Skripterei ziemlich schnell dazu, immer den kleinsten gemeinsamen Nenner zu verwenden.

Aber das ist alles Philosophie - beides geht, beides hat seine Berechtigung. Und Stephan hat sein Skript wahrscheinlich schon längst fertig. <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Jochen

Stephan

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#10 Post by Stephan »

Hallo zusammen <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Danke für die Hilfe. Werde das Script heute abend mal ausprobieren. Würde mir wirklich weiterhelfen <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Grüße ... Stephan !

Stephan

Re: per bash-script prüfen, ob laufwerk gemountet oder nicht

#11 Post by Stephan »

Hallo zusammen !

Habe das Script getestet und verwertet. Alles funktioniert prima <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Vielen Dank an alle Antwort-Geber <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Grüße, Stephan !

Post Reply