Скопируйте файл на USB-накопитель автоматически в Linux bash

Я ищу способ скопировать файл на USB-накопитель, а затем вставить его автоматически. Мне необходимо:

  • Обнаружить, когда вставлен новый usb
  • Определите точку монтирования (по умолчанию /media/something) — моя система автоматически монтирует USB-накопители.
  • скопировать на него файл.

Мне нужно сделать это с помощью linux bash. Я уже искал некоторые полезные команды, такие как udev, mount, udevinfo, но действительно не знаю, как их использовать (комбинировать), чтобы получить то, что мне нужно.

Какие-либо предложения?


person adario    schedule 18.11.2010    source источник


Ответы (2)


Я сам не писал никаких правил udev, но ответ от "etola" в этом Ubuntu ветка форума точно описывает ваш вариант использования (выполнение скрипта при появлении устройства). Однако IMHO чувствителен к каждому устройству, которое вы подключаете, поэтому вам может потребоваться более одной записи.

Также есть руководство по написанию правил udev.

person lothar    schedule 18.11.2010

У меня вроде получилось, работает, но единственное, что я не исправил, это:

  1. Доступ к usb-устройству возможен через 2 точки монтирования.
  2. Вам нужно размонтировать устройство вручную
  3. Я не смог найти способ узнать /dev, где смонтирован usb, так что это константа.

Хорошо, что вам не нужно копировать какой-либо файл на USB, просто подключите его, и файл будет скопирован на него автоматически. Надеюсь, это поможет кому-то другому или может быть улучшено. (извините, объяснение ниже на испанском...)

  1. Cree una regla de udev llamada 81-audo-copy.rules с указанным кодом:

KERNEL=="sdb2", RUN+="/home/adario/paraCopiar/autocopiar"

Lo que hase es que cuando se inserta la memoria usb ejecuta el script de la ubicacion (el código 81 es Importante, ya que dependiendo de lo que pongamos se ejecuta antes o despues de las demas reglas, o no se ejecuta. El resto del nombre puede ser lo que queramos).

  1. acá el contenido de "autocopiar", el archivo debe ser ejecutable

sudo mount /dev/sdb2 /mnt/acopiar -t vfat -o umask=000 cp -v /home/adario/paraCopiar/loqueQuieroCopiar.zip /mnt/acopiar

Lo Que Hace ES asignar Otro punto de montaje al usb Que ya se ha montado, esto para que sepamos el nombre de la ubicación.

  1. Por ultimo, para que el script no nos pida contraseña cada vez que se ejecute, agregamos al archivo sudoers

nombreUsuario ALL=(ALL) NOPASSWD: ALL

person adario    schedule 20.11.2010