Hallo, Am Sonntag, 13. April 2003 14:00 schrieb Jan Trippler:
On Son, 13 Apr 2003 at 13:04 (+0200), Hartmut Meyer wrote:
Am Sonntag, 13. April 2003 12:27 schrieb Michael Hoeller:
ich habe hier ein Script das eine Partition mountet das soll aber nur geschehen wenn dieses noch nicht gemountet ist. Wie kann ich das am besten Bewerkstelligen?
Und dann auch rückwärts, umount nur wenn's gemountet ist.
Ich würd mir keinen Kopf machen. Einfach Fehlermeldungen ignorieren und gut.
Da muss ich mal wieder Einspruch erheben. Fehlermeldung ignorieren ist nie gut, sie kann ja auch andere Ursachen haben (fehlende Berechtigung oder fehlender Mountpunkt oder kaputtes FS oder ... - oder beim umount ein *resource busy* ...). Vor allem in Scripts, die womöglich noch ohne Interaktion ablaufen, ist das IMHO total daneben.
Hast im Prinzip natürlich völlig recht, aber ...
Zur Frage (Beispiel Mountpunkt /daten1): if ! mount | cut -f3 -d" " | grep -q "^/daten1$"; then mount /daten1 fi
Damit fängst du auch keinen der von dir oben genannten Fehler ab ;-) Du vermeidest nur, dass ein mount Versuch auf ein bereits gemountetes Verzeichnis gemacht wird. Aber genau dieser Fall ist nun wirklich unkritisch. Deshalb würde ich statt dessen einfach _diese_ Fehlermeldung in Kauf nehmen und bewusst ignorieren.
mount zeigt (wenn ohne Optionen aufgerufen) alle existierenden Mounts an, cut schneidet Feld 3 ab und grep prüft, ob der gesuchte Mountpunkt in der Liste ist. Der umount kann dann mit fast der gleichen Abfrage laufen, man muss nur die Positiv- statt der Negativabfrage nutzen:
if mount | cut -f3 -d" " | grep -q "^/daten1$"; then umount /daten1 fi
Siehe oben. Schöne Grüße aus Bremen hartmut