Как я могу запустить скрипт, когда я отключаю определенный USB-диск?

Я пытаюсь выполнить синхронизацию между папкой и USB-накопителем, чтобы

a) когда я подключал конкретный USB-накопитель, запускался сценарий для копирования любых новых файлов с USB-накопителя в папку; и

b) когда я размонтирую диск (нажмите eject в nautilus), запускается скрипт для копирования любых новых файлов из папки на usb.

Я уверен, что могу использовать udev и rsync для выполнения части а), но как я могу выполнить часть б)?

4
задан 14 August 2013 в 19:02

1 ответ

Дублирующийся ответ имеет большую часть того, что необходимо. Приветствующиеся комментарии. Включите его для получения идентификаторов:

lsusb

замените идентификаторы и скажите это что сценарии.

ACTION=="add", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="0260", OWNER="{userid}", RUN+="/usr/local/bin/usb-copy-add.sh"
ACTION=="remove", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="0260", OWNER="{userid}", RUN+="/usr/local/bin/usb-copy-remove.sh"

Сценарии копии usb могли быть сделаны несколькими способами. Они посмотрят что-то как следующее. Это - удаление. Обратные вещи для добавления (не работает рекурсивно):

#!/bin/sh
localf={/your/local/folder/}
for x in `ls -1 "$localf"`
do
    file=`basename $x`
    cd {mounted dir}
    if [ "$file" -nt "$x" ]
    then
        cp "$file" "$localf"
    fi
done

или от суперпользователя отвечают, что существует ссылка, которая описывает CP - обновление (с рекурсивным-r). Это - удаление, реверс для добавления:

cp -r -u {mounted dir} {/your/local/folder/}

также из того же ответа суперпользователя, это - удаление, реверс для добавления:

rsync --progress -r -u {mounted dir} {/your/local/folder/}

Заяц является некоторыми другими идеями копии.

0
ответ дан 14 August 2013 в 19:02

Другие вопросы по тегам:

Похожие вопросы: