外付けハードドライブが接続されているときにスクリプトを呼び出してファイルをバックアップしたいのですが、動作しません。
まず、端末にコマンドを入力します。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
誰でも私を助けることができますか?
ベストアンサー1
いくつかの検索の最後に解決策を見つけたようです。
ATTR{partition}=="1"
まず、スクリプトへの複数の呼び出しを避けるために、udevにルールを追加する必要があります。
2番目で最も重要なのは、呼び出しスクリプトに#/bin/bash
誤った構文エラーがあり、正しい構文は次のとおりです。#!/bin/bash