插入 USB 驱动器时自动备份

插入 USB 驱动器时自动备份

如果这不是发布该问题的最佳位置,您能否将我引导到一个更合适的地方来发布该问题?

我正在尝试做的事情:

我有一个 USB 驱动器,它是,fat32它的名称是JavaClasses。每当我插入它时,它都会被挂载,并且它的可访问路径是/media/bill/JavaClasses。我有一个脚本,当我运行它时,它会检查目录是否JavaClasses存在,如果存在,它将创建一个具有这种格式的目录。yyyymmddhhmm然后脚本会将我的 eclipse 目录复制(备份)到这个新目录。

我在 下创建了一条新规则/etc/udev/rules.d/85-javaclasses.rules。这将启动上述脚本。该脚本有 2 秒的延迟以允许安装。

现在的情况:

如果我手动运行,脚本可以正常运行。插入驱动器后,它不会自动运行。

命令行和信息:

这是中的命令85-javaclasses.rules

SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="0930", ATTRS{idProduct}=="6545", RUN+="/home/bill/bin/javaclasses.sh"

这是我跑步时得到的

udevadm info --attribute-walk --name /dev/sdb1


looking at parent device '/devices/pci0000:00/0000:00:07.0/0000:04:00.0/usb10/10-1/10-1.4':
    KERNELS=="10-1.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{devpath}=="1.4"
    ATTRS{idVendor}=="0930"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="10"
    ATTRS{devnum}=="4"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="200mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0100"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{serial}=="001A4D5E4020ED5199130595"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="2197"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Kingston"
    ATTRS{removable}=="unknown"
    ATTRS{idProduct}=="6545"
    ATTRS{bDeviceClass}=="00"
    ATTRS{product}=="DataTraveler 2.0"

有人能告诉我如何解决这个问题吗?谢谢您的宝贵时间。

答案1

只需尝试一个简单的命令循环,处理能力非常低,但很有用。

#!/bin/bash
x=0
while [ true ]
    do if [ $x = 0 ]
        then if [ -s /media/myflashdrive/* ]
            then bash /home/user/myscript.sh
            x=1
        fi
        else if [ -s /media/myflashdrive/* ]
            then true
            else x=0
        fi
     fi
sleep 10
done

将其保存在 /etc/ 中,并将此行添加到 /etc/rc.local:

bash /etc/this_script.sh &

确保在 exit 0 之前添加它。完成!每当您的闪存驱动器安装时,myscript.sh 都会运行,然后当它卸载时,x 将再次等于 0,并且脚本将再次开始寻找它以供您插入!

相关内容