我想调用一个脚本,并备份我的文件时,我的外部硬盘插入,但它不工作。
首先,我在终端输入命令udevadm info -a -n /dev/sdb
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-3':
KERNELS=="3-3"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{authorized}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bMaxPower}=="500mA"
ATTRS{bNumConfigurations}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bcdDevice}=="3202"
ATTRS{bmAttributes}=="80"
ATTRS{busnum}=="3"
ATTRS{configuration}==""
ATTRS{devnum}=="3"
ATTRS{devpath}=="3"
ATTRS{idProduct}=="0578"
ATTRS{idVendor}=="152d"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="JMicron"
ATTRS{maxchild}=="0"
ATTRS{product}=="External Disk 3.0"
ATTRS{quirks}=="0x0"
ATTRS{removable}=="removable"
ATTRS{rx_lanes}=="1"
ATTRS{serial}=="212355187228"
ATTRS{speed}=="480"
ATTRS{tx_lanes}=="1"
ATTRS{urbnum}=="11622"
ATTRS{version}==" 2.10"我使用输出来编写我的udev规则。我在/etc/udev/rules.d中创建了一个名为99-RsyncToUsb.rules的文件,并输入了以下命令ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="152d", ATTRS{idProduct}=="0578", RUN+="/opt/sync_files_to_usb_disk.sh"
脚本/opt/sync_files_to_usb_disk.sh具有以下配置-rwxr-xr-x. 1 unix unix 744 May 7 23:47 sync_files_to_usb_disk.sh
但当我连接设备时仍然不会发生。
我的Rsync命令是以下rsync -hvrstc --delete --exclude=".*/" --backup --backup-dir=Lost-Found --suffix=_dltdFile --times --progress /home/unix /run/media/unix/ExtDisk_1
有人能帮我吗?
发布于 2022-05-10 20:06:44
我想经过一番搜索我找到了一个解决办法。
首先,在udev中添加ATTR{partition}=="1"规则是必要的,以避免脚本的多次调用。
第二个也是最重要的,在被调用的脚本中,我出现了语法错误#/bin/bash是错误的,正确的是#!/bin/bash
https://unix.stackexchange.com/questions/701829
复制相似问题