C'è uno script Bash e/o un demone che posso scrivere che rileverà una specifica unità USB e quindi sincronizzerà quell'unità con una directory?Script di Bash per rilevare quando la mia USB è collegata e quindi sincronizzarla con una Directory
Script di Bash per rilevare quando la mia USB è collegata e quindi sincronizzarla con una Directory
risposta
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.
Qui è an example python deamon che è possibile utilizzare per la parte in ascolto, quindi copiare i file nella directory non dovrebbe essere un problema.
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.
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
È possibile utilizzare UUID e eliminare tutti gli altri attributi? – Cascabel
scusate, non so - questo è già nella mia lista di cose da fare :) –