0

我正在寻找一种将文件复制到 USB 驱动器然后自动插入的方法。我需要:

  • 检测何时插入新的 USB
  • 检测挂载点(默认为 /media/something) - 我的系统自动挂载 USB 驱动器。
  • 将文件复制到上面。

我需要用 linux bash 来做这件事。我已经搜索了一些有用的命令,如 udev、mount、udevinfo,但真的不知道如何使用它们(组合它们)来获得我需要的东西。

有什么建议么?

4

2 回答 2

1

我自己没有编写任何 udev 规则,但是这个Ubuntu 论坛帖子中“etola”的答案准确地描述了您的用例(当设备出现时执行脚本)。但是,恕我直言,它对您插入的每个设备都很敏感,因此您可能需要多个条目。

还有一本关于编写 udev 规则的手册。

于 2010-11-18T23:36:04.393 回答
0

我有点明白了,它很实用,但我唯一没有修复的是:

  1. 可以通过 2 个挂载点访问 USB 设备。
  2. 您需要手动卸载设备
  3. 我找不到找到安装 USB 的 /dev 的方法,所以它是一个常量。

好处是您不需要将任何文件复制到USB上,只需插入,文件就会自动复制到它上面。希望这对其他人有帮助,或者可以改进。(对不起,下面的解释是西班牙语......)

  1. Cree una regla de udev llamada 81-audo-copy.rules con el siguiente código:

内核=="sdb2",运行+="/home/adario/paraCopiar/autocopianr"

Lo que hace 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 querramos)。

  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, èsto 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

于 2010-11-20T10:19:43.963 回答