Mailinglist Archive: opensuse-de (1756 mails)

< Previous Next >
Re: USB-Stick per Script formatieren (mit mount-Problem)
  • From: David Haller <lists@xxxxxxxxxx>
  • Date: Sun, 22 Oct 2006 19:47:11 +0000 (UTC)
  • Message-id: <20061022194622.GA11308@xxxxxxxxxxxxxxxxxx>
Hallo,

Am Son, 22 Okt 2006, Al Bogner schrieb:
>Am Sonntag, 22. Oktober 2006 18:02 schrieb David Haller:
>> >Hast du eine Idee, wie man das mit eventuellem umount sauber hinbekommt?
>>
>> Ich hab' sowas fuer die Platte, die ich normal schlafen lege:
>>
>> awk '
>> /^[ \t]*#/ {
>> next;
>> }

Ups. Der Teil gehoert zum Kommentare ueberspringen in /etc/fstab (die
im anderen Teil des scripts verwendet wird ;)

>> $1 ~ /hdd/ {
>> print "umount "$1;
>> }' /proc/mounts | sh -x
>
>Hmmh, ganz verstehe ich das nicht. Ich habe in meinem Script nun eine
>Variable, die zB "/dev/sda" enthält.

Ok.

>Würde diese Variable $1 entsprechen und

Nein. $1 ist das erste Feld der aktuellen Zeile, also bei /proc/mounts
das Device.

>müsste ich eine Variable definieren, die dann statt /hdd/ /sda/ enthält?

Ja.

>Könnte man dafür auch nicht mount auswerten?

Die Ausgabe von mount ist nicht zuverlaessig und /proc/mounts
auszulesen spart auch noch einen Prozess ;)

>> Ich hoffe mal, das Format der /proc/mounts hat sich nicht
>> geaendert. Hier z.B.:
>> device MtPt fs opts ? ?
>> /dev/hda1 /mnt/hda1 ext3 rw 0 0
>
>Bei mir:
>
>cat /proc/mounts
>rootfs / rootfs rw 0 0
>/dev/hda15 /dev/.static/dev xfs rw 0 0
>/dev/hda14 /boot reiserfs rw 0 0
^^^^^^^^^^ => wird im awk zu $1
>...

Passt.

[..]
>Ich will das Scritp möglichst flexibel auf verschiedenen Rechnern laufen
>lassen. Daher soll alles im Script selbst sein.
>
>Sobald ID_SERIAL abgeglichen ist, steht das Device in einer
>Variable "$USBGERAET" .

Ah gut.

>Wenn ich nun mount oder /proc/mounts verwende, dann
>könnte man mit cut bis zum 1. Leerzeichen ausschneiden, Netzlaufwerke
>rauswerfen, dann nach der Variable "$USBGERAET" greppen und an xargs mit
>umount übergeben, oder?
>
>cat /proc/mounts | cut -f1 -d" " | grep -v ":" | grep "sda" | xargs \
>-r -n1 umount
>
>Etwas in dieser Richtung finde ich nicht so kryptisch wie mit awk ;-)

Schau's dir an, awk ist einfacher:

awk -v dev="$USBGERAET" '$1 ~ dev { print "umount "$1; }' /proc/mounts
| sh -x

>Ich überlege mir nun auch noch, ob das alles mit Userrechten zu schaffen ist,
>sodass der User aber bei den eingebauten HDs (hdx bzw. sdx, wenn SATA oder
>SCSI) nichts anstellen kann.

Sollte gehen.

-dnh

--
... "See, I told you, they'd listen to Reason," Fisheye says, shutting down
the whirling gun. -- Neal Stephenson, "Snow Crash", p. 361

< Previous Next >
Follow Ups