2010-11-15 7 views

risposta

6

Non l'ho fatto io stesso, ma si può provare udev regole come questo:

# Hitachi SimpleDrive mini, model HTS545050B9A300 (500 GB USB HDD) 
SUBSYSTEM=="block", ATTR{size}=="976768002", ATTRS{product}=="SimpleDrive mini", ATTRS{serial}=="2512009121920487", ACTION=="add", RUN+="/lib/udev/local.usb.hdd.sh add $devpath" 

posto in /etc/udev/rules.d/90-local.rules o simile luogo, certamente affidabile del sistema operativo.

+0

È possibile utilizzare UUID e eliminare tutti gli altri attributi? – Cascabel

+0

scusate, non so - questo è già nella mia lista di cose da fare :) –

2

Qui è an example python deamon che è possibile utilizzare per la parte in ascolto, quindi copiare i file nella directory non dovrebbe essere un problema.

18

Per riferimento futuro, ecco come eseguire uno script di bash al rilevamento di un'unità USB.

Collegare il dispositivo ed eseguire lsusb per recuperare le informazioni sul dispositivo. Si dovrebbe vedere qualcosa di simile a questo:

$ lsusb 
Bus 002 Device 039: ID 0bc2:2100 Seagate RSS LLC 

In questo caso, l'ID del fornitore del dispositivo è 0bc2 e l'ID del prodotto è 2100.

Ora è possibile creare la regola UDEV utilizzando un editor di testo di tua scelta.

$ sudo vi /etc/udev/rules.d/85-my_usb_device_rule.rules

E aggiungere questo:

ACTION == "add", SUBSYSTEM ==" usb", SYSFS {} idVendor == "0bc2", SYSFS {} idProduct == "2100", RUN + = "/ home/mia-home/mio_script"

/home/myhome/my_script è il percorso allo script che farebbe tutto quello che vuoi

per assicurarsi che lo script di rilevamento verrà eseguito subito, eseguire questo comando per ricaricare le regole udev:

$ comando sudo udevadm --reload-regole

Questo è stato testato su Fedora 14.

+6

Ho usato questo con Crunchbang Linux 11 (waldorf) [basato su debian], ma ho dovuto cambiare 'SYSFS' in 'ATTR' per ottenere funziona. Questo ragazzo ha postato un buon metodo per il debug di udev ... http://www.jpichon.net/blog/2011/12/debugging-udev-rules/ – neildaemond