USB ドライブにファイルを自動的にマウントしてコピーする

USB ドライブにファイルを自動的にマウントしてコピーする

私はLinuxとプログラミングの初心者です。私の質問はこれに似ています1つしかし、私はデスクトップのないヘッドレスの Raspberry Pi 4 [buster lite] を実行しており、これは USB ドライブを自動マウントするようです。USB の新しいドライブを自動的にマウントして、パスが予測可能になるようにする、ジャンキーでない方法は見つかりませんでした。この RPi4 にはセンサーがあり、挿入されたサムドライブにセンサーデータを自動的に保存したいと考えています。定期的にドライブを取り外して新しいドライブを挿入し、元に戻すことができます。同じ USB ドライブを再利用するのではなく、新しい USB ドライブを使用できるようにする必要があります。私が行っている残りの作業は Python 上で行われますが、この機能は Python なしで個別に実行できます。このソリューションは、Pi の再起動後も存続する必要があります。

皆様のご協力に感謝します。私は初心者なので、特にお勧めのものを説明していただけるとありがたいです。

答え1

  1. /dev/sdX を作成して USB をマウントする(または他のチェックを行う)スクリプトを作成します。
  2. USB ドライブが接続されたときにスクリプトを実行するように udevd を変更します。

スクリプトは次のように開始できます。

    for i in $(ls /dev/sd* | awk -F '/'  '{ print $3 }')
    do
            echo "Do stuff like: mkdir /mnt/$i"
    done

udevは次のように設定できます。適切な値を設定すると、/dev/usb/NAMEYOUCHOOSEにデバイスが表示されます。

BUS=="usb", ACTION=="add", KERNEL=="sd[a-z][0-9]*", NAME="%k", RUN+="/usr/local/sbin/YOURSCRIPT"

役に立つコマンド

udevadm monitor

デバイスを接続します。次に、次のような属性を確認します。

udevadm info --path /devices/pci0000:00/0000:00:1d.7/usb1/1-4/usb_device/usbdev1.49 --attribute-walk

(異なる値を使用する必要があります)

ルールを記述した後、udevd にそれらを強制的に再読み込みさせます。

udevadm control --reload-rules

デバイスを再接続します。必要に応じて /etc/fstab を変更します。

しかし、私はもっとシンプルなものを好みます。おそらく /dev/disk/by-label/ があるので、それに応じてメディアにラベルを付け、fstab を変更します。

関連情報