Belirli bir USB sürücüsünü algılayacak ve ardından bu sürücüyü bir dizinle eşitleyecek şekilde yazabileceğim bir Bash komut dosyası ve/veya arka plan var mı?USB aygıtım ne zaman takılı olduğunu algılamak ve daha sonra bir dizin ile eşitlemek için Bash komut dosyası
cevap
kendim yapmadım ama böyle udev
kuralları deneyebilirsiniz:
# 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"
Yeri o /etc/udev/rules.d/90-local.rules
veya benzeri bir yerde, senin OS kesinlikle güvenilir de.
Dinleme bölümü için kullanabileceğiniz an example python deamon, sonra dosyaları dizine kopyalamak bir sorun olmamalıdır.
Gelecekte başvurmak için, bir USB sürücüsünün algılanması üzerine bir bash komut dosyasının nasıl çalıştırılacağı burada açıklanmıştır. Aygıtın bilgilerini almak için cihazınızı bağlayın ve lsusb
'u çalıştırın. Buna benzer bir şey görmelisiniz: Bu durumda
$ lsusb Bus 002 Device 039: ID 0bc2:2100 Seagate RSS LLC
, cihazın satıcı kimliği 0bc2 ve ürün kimliği Artık kullanarak udev kuralı oluşturabilirsiniz 2100.
olduğunu Seçtiğiniz bir metin editörü.
$ sudo vi /etc/udev/rules.d/85-my_usb_device_rule.rules
Ve bu ekleyin:
EYLEM ==, alt sistemi "add" ==" usb", sysfs {idVendor} == "0bc2", sysfs {idProduct} == "2100", RUN + = "/ home/myhome/my_script"
/home/myhome/my_script
betiğinize yolu olan ne istersen yapardı. Bu Fedora üzerinde test edildi
$ sudo udevadm kontrol --reload-kurallar:
algılama komut, hemen yürütmek udev kuralları yeniden yüklemek için bu komutu çalıştırmak emin olmak için 14.
Bunu Crunchbang Linux 11 (waldorf) [debian based] ile kullandım, ancak 'SYSFS'yi' ATTR 'olarak değiştirmek zorundaydım çalışmak. Bu adam udev hata ayıklama için iyi bir yöntem gönderdi ... http://www.jpichon.net/blog/2011/12/debugging-udev-rules/ – neildaemond
UUID kullanmak ve bu özelliklerin geri kalanını ortadan kaldırmak mümkün mü? – Cascabel
üzgünüm, bilmiyorum - bu benim kendi yapılacaklar listemde henüz yok :) –