Mountpoint von usb Gerät auslesen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Mountpoint von usb Gerät auslesen

Beitrag von latenite » 21.11.2009 21:28:55

Hallo Leute

ich habe ein "playlist-script" auf meinem mp3 player das ich gern an verschiedenen pc laufen lassen will.
Da der Player an jedem Pc einen neuen/anderen Mountpoint zugewiesen bekommt (dev/sda, dev/sdb...)

Wie kann ich den aktuellen mountpoint eines USB-Gerätes auslesen (um es dann im "playlist" script zu verwenden)???

Code: Alles auswählen

Bus 008 Device 002: ID 046a:0180 Cherry GmbH 
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 046d:c50e Logitech, Inc. MX-1000 Cordless Mouse Receiver
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 021: ID 0781:7434 SanDisk Corp. 
Bus 001 Device 003: ID 04b8:0122 Seiko Epson Corp. Perfection 3590 scanner
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 021: ID 0781:7434 SanDisk Corp.

is das der Player und

Code: Alles auswählen

/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
/dev/sda4 on /home type ext3 (rw)
/dev/sda3 on /tmp type ext3 (rw)
none on /dev/bus/usb type usbfs (rw,devgid=1001,devmode=664)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
trusteduser@192.168.4.4:/mnt/data on /mnt/data type fuse.sshfs (rw,noexec,nosuid,nodev,max_read=65536,user=kai)
/dev/sdb on /media/disk type vfat (rw,nosuid,nodev,uhelper=hal,shortname=lower,uid=1000)
/dev/sdb on /media/disk type vfat (rw,nosuid,nodev,uhelper=hal,shortname=lower,uid=1000)

der momentane mountpoint.

Wo bei ich aus der Zeile von "mount" nicht erkennen kann das es sich TATSÄCHLICH um den gemeineten Player handelt. Das weis ich NUR weil ich sonst kein weiteres Geät am PC habe.

Ich suche also so was wie : "lies die ID/Prokduknummer des Gerätes -> vergleiche sie mit den am PC befindlichen USB-Geräten (ob gemountet oder nicht) und wenn gemountet, dann gebe mountpoint aus.

Danke schon mal im Voraus.

Benutzeravatar
npi
Beiträge: 567
Registriert: 03.08.2003 17:52:10

Re: Mountpoint von usb Gerät auslesen

Beitrag von npi » 21.11.2009 21:47:01

Hi,

das ist zwar vllt nicht die eleganteste Lösung, aber bis du ne bessere findest:

Code: Alles auswählen

uuid=<uuid des Players>
dev=`ls -l /dev/disk/by-uuid | grep "$uuid ->" | sed 's/.*\///'`
mountpoint=`mount | grep $dev | sed 's/.*on //' | sed 's/ .*//'`
Dann natürlich noch Abfragen außenrum, falls es nicht gefunden wurde.

gruß,
npi
"Bis zur Unendlichkeit, und noch viel weiter!"
--Buzz, Toystory

latenite
Beiträge: 688
Registriert: 14.05.2007 01:04:23

Re: Mountpoint von usb Gerät auslesen

Beitrag von latenite » 22.11.2009 14:45:56

Hey danke..das is doch ne coole Lösung. Danke
Warum sollte es da noch was "besseres" geben..... ES TUT DOCH?!

Danke npi

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Mountpoint von usb Gerät auslesen

Beitrag von gms » 22.11.2009 16:45:29

man könnte einige Pipes wegoptimieren, aber die Lösung ist völlig in Ordnung

Alternativen gibts sicherlich, z.B

über 'hal':

Code: Alles auswählen

gms1 ~ # uuid=5BF2E3B2507CC2B6
gms1 ~ # hal-get-property --udi $(hal-find-by-property --key volume.uuid --string "$uuid") --key volume.mount_point
/mnt/sdb1
oder über 'blkid' ( das wäre mein Kandidat):

Code: Alles auswählen

gms1 ~ # uuid=5BF2E3B2507CC2B6
gms1 ~ # mount | awk -v dev=$(blkid -l -t UUID=$uuid -o device) '$1 == dev{print $3}'
/mnt/sdb1
Gruß
gms

Benutzeravatar
Teddybear
Beiträge: 3163
Registriert: 07.05.2005 13:52:55
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Altomünster
Kontaktdaten:

Re: Mountpoint von usb Gerät auslesen

Beitrag von Teddybear » 22.11.2009 17:18:16

Man könnte auch einfach mal schauen dem USB Medium ein LABEL zu verpassen.
Dann wird das ding immer unter /media/$LABEL gemountet
Versuchungen sollte man nachgeben. Wer weiß, ob sie wiederkommen!
Oscar Wilde

Mod-Voice / My Voice

Antworten