【发布时间】:2015-08-13 23:15:54
【问题描述】:
我有一个应用程序,主要是在 Java 中,它通过网页 GUI(由 Ubuntu 机器提供服务)控制机载红外摄像头,当计算机通电并接近启动结束时,它会自动开始运行。应用程序以用户身份运行,而不是 root,即使用户没有登录。
在收集了大量图像后,需要使用 rsync 将数据存档到操作员 U 盘上的文件夹中。我需要安装 USB 驱动器并知道它的名称标签。计算机是无头的,无论如何不能指望飞机上的操作员了解 Linux。
在 Ubuntu 上,我看到已登录并运行 xfce4 GUI,然后驱动器才会在 /media/user-name/drive-tag 中列出(我注意到 /media/username 归 root 所有,但为驱动器命名的文件夹归用户所有。)并显示在 /etc/mtab 中:
/dev/sdd1 /media/programmer/DATA-02-2TB vfat rw,nosuid,nodev,uid=1001,gid=1001,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2 0 0
如何通过 Java 或通过 Java 和 bash 的组合来检测和挂载 USB 存储设备?
如果这不可行,我是否需要通过 GUI 要求用户输入设备标签或名称,例如“DATA-02-2TB”,然后创建挂载点并通过脚本挂载 USB 驱动器使用上述信息?
【问题讨论】:
-
我不知道,现在如何在纯 java 中做到这一点。我需要阅读更多相关信息。不过在 Ubuntu 上,您可以在终端中简单地调用
lsusb命令。它将显示有关 USB 端口和连接到它们的设备的信息。您可以使用-t参数查看树形层次结构中的端口或使用-v参数查看有关端口和连接设备的详细信息。它不能回答你的全部问题,但它可能是解决问题的起点。 -
谢谢,假设 Bus 004 始终与两个端口绑定,那么我得到的是“LaCie, Ltd”(在这种情况下)制造的东西。
标签: java ubuntu-14.04 usb-drive