Автоматическая синхронизация flash памяти MP3 плеера с локальным каталогом (обновлено)
Отредактировано 2017.02.08
Наконец-то дошли руки, чтобы сделать автоматическую синхронизацию flash памяти MP3 плеера с локальным каталогом.
Описанная ниже реализация тестировалась на дистрибутиве GNU/Linux Kubuntu 14.04 и GNU/Linux Kubuntu 16.04, но, в принципе, ничего не мешает использовать её на любом другом дистрибутиве с udev.
Принцип работы синхронизации следующий: после подключения MP3 плеера (определяется с помощью правила udev) запускается скрипт, выполняющий зеркалирование при помощи rsync. Монтирование и размонтирование выполняется скриптом автоматически. О начале и окончании синхронизации посылается уведомление на рабочий стол.
Идентификацию flash накопителя MP3 плеера будем производить при помощи UUID.
В нашем случае это: 2408-0200
Для начала создадим перманентную точку монтирования:
и пропишем правило в /etc/fstab
:
Предположим, что мы храним мастер копию файлов для плеера в
/home/username/MySync/TranscendMP840/sdcard/
,
а полное имя скрипта /home/username/MySync/TranscendMP840/sdcard/sync-to-player.sh
.
Создадим правило для udev /etc/udev/rules.d/99-usb-player-mp840.rules
:
Содержимое скрипта синхронизации:
Для того чтобы началась синхронизация в корне файловой системы
плеера необходимо создать пустой файл rsync-accept.flag
. Это необходимо, во-первых,
для того, чтобы исключить затирание носителя информации со случайно совпавшим UUID,
во-вторых, может случиться так, что на плеер будут записаны файлы в обход
мастер копии. В последнем случае следует не забыть удалить данный файл,
чтобы избежать потери данных.
Для работы скрипта вам потребуются установить пакеты libnotify-bin
и espeak
.
UPD: добавлена поддержка kde5 и голосовые оповещения
Ссылки
-
http://reactivated.net/writing_udev_rules.html - writing udev rules by Daniel Drake (dsd)
-
https://gist.github.com/AlekseyDurachenko/335e3ca333a70d16a101 - скрипт синхронизации