Hallo und Guten Abend,
ich betreibe einen raspberry pi 3b mit einem aktuellen stretch lite image. Ich habe hier einen Transcend USB Adapter (Bus 001 Device 013: ID 8564:4000 Transcend Information, Inc. RDF8) für SD-Karten und habe eine udev-Regel erstellt, damit der Adapter immer unter /dev/usbstick erkannt wird:
$ sudo nano /etc/udev/rules.d/10-local.rules
KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{idVendor}=="8564", ATTRS{idProduct}=="4000", ACTION=="add", SYMLINK+="usbstick", RUN+="/etc/udev/scripts/usbadd.sh"
KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{idVendor}=="8564", ATTRS{idProduct}=="4000", ACTION=="remove", RUN+="/etc/udev/scripts/usbremove.sh"
Die beiden Skripte "usbadd.sh" und "usbremove.sh" beinhalten aktuell lediglich eine Protokollierung in ein Logfile um zu sehen ob die beiden Skripte überhaupt richtig gestartet werden. Das funktioniert auch, die Skripte werden zuverlässig beim An- bzw. Abstecken des Adapters ausgeführt.
Nun habe ich versucht das mounten/unmounten ebenfalls über diese Skripte zu realisieren. Folgendes habe ich im Skript usbadd.sh erfolglos probiert:
mount -t vfat -o uid=pi,gid=pi /dev/usbstick /media/usbadapter/
und:
udisks --mount /dev/usbstick --mount-options umask=0000
Das unmounten über usbremove.sh habe ich folgendermaßen probiert:
Alle Befehle zum mounten/unmounten funktionieren wenn ich sie direkt im Terminal absetze. Im Skript "usbadd.sh" leider nicht. Ziel ist es, dass das Skript diesen Adapter in /media/usbstick mountet, anschließend den Stick mit find nach Bildern sucht und diese in einen Ordner kopiert, sowie die Berechtigungen anpasst. Anschließend kann das Laufwerk unmounted werden.
Das Skript, welches auch im Terminal auch funktioniert, würde folgendermaßen ausehen:
#!/bin/bash
#USB-Adapter mounten:
if [ -z "$(grep /media/usbadapter /proc/mounts)" ]; then
mount -t vfat -o uid=pi,gid=pi /dev/usbstick /media/usbadapter/
fi
#Aufnahmen finden, kopieren und umbenennen:
find /media/usbadapter -iname "*.jpg" -execdir cp {} /opt/external/sd-karte \;
exiftool "-FileName<DateTimeOriginal" -d "%Y-%m-%d_%H-%M-%S.%%e" /opt/external/sd-karte
#Berechtigungen anpassen:
chown -R www-data:www-data /opt/external/sd-karte/
#USB-Adapter unmounten:
umount /media/usbadapter/
exit 0
Alles anzeigen
Kann mir jemand helfen, wie ich dieses Skript automatisch bei jedem Anstecken dieses Adapters ausführen kann? Sobald ich es versuche per udev automatisch laufen zu lassen werden die Laufwerke nicht mehr gemounted/unmounted.
Grüße M.