首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享第一附加USB驱动器

共享第一附加USB驱动器
EN

Ask Ubuntu用户
提问于 2022-07-04 13:08:39
回答 1查看 172关注 0票数 2

为了在PLC应用程序中实现一个简单的备份系统,我们访问一个附加在外部Ubuntu系统上的USB棒。因此,第一个附加的USB驱动器应该在Samba上共享。

第一个附加USB总是获得路径/dev/sdb。这个动态安装的可移动设备现在应该以"USB_DRIVE“这样的固定名称共享。

我的问题是,驱动器安装了它的设备描述,如“肯辛顿”。如果文件夹/媒体/肯辛顿共享,设备被删除,另一个驱动器的名称为“扫描磁盘”,它将不会被共享。

以下是我的问题:

  1. 是否有可能与其路径共享可移动设备?所以路径/dev/sdb一旦连接就会被共享吗?
  2. 我试图将一个文件夹/mnt/USB_驱动器绑定到/media/KENSIGNTON这样的特定挂载设备上。但“媒体”文件夹中的文件夹的名称不是修补程序。是否可以将动态创建的文件夹/media/KENSINGTON的名称更改为路径的名称,如/media/sdb‘
  3. 还有其他方式来分享第一个附加的usb驱动器吗?

我知道安全问题。samba共享文件夹由用户名和密码保护。

用户应该可以自由地附加他想要创建的备份。因此,我不能使用设备名称,但需要确定连接的第一个设备名称,其中路径/dev/sdb/

由于设备是动态插入的,因此/etc/fstab肯定无法工作。

最好的解决方案是,如果ubuntu不将设备挂载到文件夹/media/ (Sample /media/Kensington),而是使用path /media/ (Sample /media/sdb),那么它是否可以被配置?

Usb挂载工具似乎是指向这个方向的解决方案。但是一旦安装好,它就会生成文件夹,并且它们都是空的,即使附加了usb设备。还能做些什么呢?是否有可能配置usb挂载,以创建文件夹usb只有当特定的设备是附加,而不是永久的?

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2022-07-04 21:24:11

我找到了解决办法。我用上面提到的脚本检查文件设备。如果它存在,我将创建一个文件夹并挂载它。如果它已经安装,什么都不会做。一旦没有设备连接,并且不再找到/dev/sdb,它就会被卸载和删除。

代码语言:javascript
复制
#!/bin/bash

#general definitions
MNT_PATH="/media/USB_DRIVE"
DEV_ID="sdd1"
FILE_SYSTEM="vfat"

# check if user is root
if [ "$(whoami)" != "root" ]
then
 echo "run with sudo or as root"
 exit
fi

#get list with all attached devices
for i in $(lsblk -lo name,fstype,hotplug,type|grep '1 part到目前为止剧本还能用。不清楚的是,如何调用这样的脚本。它是用一个没完没了的时间循环调用,还是在一个特定的循环中被调用?|tr -s ' ' ' '|sed 's/ 1 part$//'|grep ' ..*到目前为止剧本还能用。不清楚的是,如何调用这样的脚本。它是用一个没完没了的时间循环调用,还是在一个特定的循环中被调用?|tr ' ' '_')
do
 devId=${i%_*}
 devPath=/dev/$devId
 fileSystem=${i#*_}

# check if device path matches
if [ "$devId" == $DEV_ID ]
 then
    # check if file system matches
  if [ "$fileSystem" == $FILE_SYSTEM ] 
  then
   # device found - mount
   # check if device not mounted already
        if ! [[ $(findmnt -M "$MNT_PATH") ]]
         then
     # create folder and mount
         mkdir -p /media/USB_DRIVE
         mount -o rw,user,exec,umask=0000 "$devPath" /media/USB_DRIVE
         printf "mounted\n"
       exit
      else
        # already mounted
        printf "already mounted\n"
        exit
   fi
  fi
 fi
 
done

# check if mounted device exists
if [[ $(findmnt -M "$MNT_PATH") ]]
then
  # unmount device
    sudo umount /media/USB_DRIVE
    sudo rm -r /media/USB_DRIVE/
    printf "unmounted\n"
else
 # device already unmounted
 printf "already unmounted\n"
fi

到目前为止剧本还能用。不清楚的是,如何调用这样的脚本。它是用一个没完没了的时间循环调用,还是在一个特定的循环中被调用?

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1417177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档