特定の USB ドライブを検出し、そのドライブをディレクトリと同期するように記述できる Bash スクリプトやデーモンはありますか?
3 に答える
今後の参考のために、USB ドライブの検出時に bash スクリプトを実行する方法を次に示します。
デバイスを接続して実行lsusb
し、デバイスの情報を取得します。次のようなものが表示されます。
$ lsusb Bus 002 Device 039: ID 0bc2:2100 Seagate RSS LLC
この場合、デバイスのベンダー ID は 0bc2 で、製品 ID は 2100 です。
これで、任意のテキスト エディターを使用して UDEV ルールを作成できます。
$sudo vi /etc/udev/rules.d/85-my_usb_device_rule.rules
そしてこれを追加します:
ACTION=="追加"、SUBSYSTEM=="usb"、SYSFS{idVendor}=="0bc2"、SYSFS{idProduct}=="2100"、RUN+="/home/myhome/my_script"
/home/myhome/my_script
スクリプトへのパスであり、必要なことは何でも実行します。
検出スクリプトがすぐに実行されるようにするには、次のコマンドを実行して UDEV ルールをリロードします。
$sudo udevadm コントロール --reload-rules
これは Fedora 14 でテストされました。
私は自分でそれをしませんでしたが、次udev
のようなルールを試すことができます:
# 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"
/etc/udev/rules.d/90-local.rules
OSに依存する、または同様の場所に配置します。
リスニング部分に使用できる Python デーモンの例を次に示します。ファイルをディレクトリにコピーすることは問題になりません。