Existe-t-il un script Bash et/ou un démon que je peux écrire pour détecter un lecteur USB spécifique, puis synchroniser ce lecteur avec un répertoire?Script Bash pour détecter quand mon port USB est branché et pour ensuite le synchroniser avec un répertoire
Répondre
Je ne le fais pas moi-même, mais vous pouvez essayer udev
règles comme celle-ci:
# 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"
Placez-le dans /etc/udev/rules.d/90-local.rules
ou lieu semblable, certainement fiable sur votre système d'exploitation.
Voici an example python deamon que vous pourriez utiliser pour la partie écoute, puis copier les fichiers dans votre répertoire ne devrait pas poser de problème.
Pour référence ultérieure, voici comment exécuter un script bash lors de la détection d'une clé USB.
Connectez votre appareil et exécutez lsusb
pour récupérer les informations sur l'appareil. Vous devriez voir quelque chose de similaire à ceci:
$ lsusb Bus 002 Device 039: ID 0bc2:2100 Seagate RSS LLC
Dans ce cas, le vendeur ID de l'appareil est 0bc2 et l'ID de produit est 2100.
Maintenant, vous pouvez créer votre règle udev en un éditeur de texte de votre choix.
$ sudo vi /etc/udev/rules.d/85-my_usb_device_rule.rules
Et ajoutez ceci:
ACTION == "ajouter", SUBSYSTEM == » usb », SYSFS {} idVendor == "0bc2", SYSFS {idProduct} == "2100", RUN + = "/ home/myhome/my_script"
/home/myhome/my_script
est le chemin de votre script qui ça ferait ce que tu veux.
pour vérifier que le script de détection exécutera tout de suite, exécutez cette commande pour recharger les règles udev:
$ règles --reload-contrôle sudo udevadm
Cela a été testé sur Fedora 14.
Je l'ai utilisé avec Crunchbang Linux 11 (waldorf) [basé sur Debian], mais j'ai dû changer 'SYSFS' en 'ATTR' pour obtenir pour travailler. Ce gars a posté une bonne méthode de débogage udev ... http://www.jpichon.net/blog/2011/12/debugging-udev-rules/ – neildaemond
Est-il possible d'utiliser UUID et de supprimer tout le reste de ces attributs? – Cascabel
désolé, je ne sais pas - ceci est sur ma propre liste todo encore :) –