LINUX.ORG.RU

Бэкап при подключении девайса


0

3

Хей.

Хочется организовать автоматический бэкап некоторых носителей при подключении с помощью rdiff-backup. Подскажите, пожалуйста, возможные пути реализации.

Скрипт для удева не выглядит хорошим вариантом из-за, например, проблем с правами. Да и вообще костылей там надо нагородить порядочно.

autorun.sh - штука неприятная, да и не работает искаропки из-за того, что кто-то радостно проставляет showexec для съемных девайсов с fat. Желания отковыривать эту опцию нет - штука, в приципе, полезная.

Поллинговый скрипт в кроне - ну, это совсем уж какой-то гнусный костылище.

P.S. Если кто посоветует решение, универсальное для фряхи и линукса - будет вообще идеально.


на носителе должна быть некая метка (файл, индекс некий в метке тома, ....) что он предназначен для бекапа. то что монтирует должно пускать процесс поиска метки.

альтернатива метки либастрал

psv1967 ★★★★★
()
Ответ на: комментарий от psv1967

Очень абстрактно сказано.

Что и как в современных udisks-based системах монтирует я плохо представляю. Видимо, цепочка udev->udisks->(nautilus|etc). Как туда встроить исполнение своего скрипта, представляю плохо. Удевовский рул-то написать можно, но это будет большой и страшенный костыль, надо как-то реагировать на событие наверху цепочки.

wolfy
() автор топика
Ответ на: комментарий от wolfy

с каких пор использование программного средства по прямому его назначению — костыль? если у тебя задача по хардварному событию запустить софт — для этого и писался удев

belka
()
Ответ на: комментарий от wolfy

нормальный такой костыль, у меня фестиваль одно время говорил о монтируемом устройстве... тут на лоре есть текст этого скрипта где то...

ну есть еще слежение за изменение файловой, наверное монтирование в /media и /mnt вызывает срабатывания. Пусть тогда то что сработает анализирует наличие метки.

psv1967 ★★★★★
()
Ответ на: комментарий от belka

Монтирование ФС - не хардварное событие. А принудительное монтирование удевом сломает то, что лежит уровнем выше.

ну есть еще слежение за изменение файловой

А какие под это есть инструменты? Опять же, своего _демона_ клепать не хочется - ни поллингового, ни какого либо еще. Должно быть простое решение.

wolfy
() автор топика
Ответ на: комментарий от wolfy

Во первых не сломает, смотря какую укажете точку монтирования, но если устройство уже смонтировано - то udisk не будет пытаться его смонтировать.

Либо пишите вызов скрипта в udev, который ждёт пока файловая система на устройстве не будет смонтирована, затем «смотрит» куда и затем запускает бэкап.

Либо монтируйте скриптом в udev, создайте точку монтирования в /media, но добавьте опции монтирования user, users, что бы обычный пользователь мог размонтировать, но это уже по желанию. Вообще в идеале пока идёт процесс бэкапа носитель не доступен для простых пользователей, когда он завершён выполняйте перемонтирования

mount -o remount, user, users /dev/disk-by-uuid/<fs>

kostik87 ★★★★★
()
Ответ на: комментарий от wolfy

ну так если у тебя фс монтируется сама, то монтирование происходит по хардварному событию. имхо сделать скрипт, который будет монтировать и в случае чего запускать бэкап, куда меньший костыль, чем лезть в дебри автомонтирования твоего наутилуса/этц. Хотя если найдешь простой способ вклиниться в процессы монтирования монстроокружениями - это было бы здорово. Наверняка где-нибудь в dbus что-то происходит в этот момент.

belka
()

>Скрипт для удева не выглядит хорошим вариантом из-за, например, проблем с правами.

4.2

Да и вообще костылей там надо нагородить порядочно.

4.2

Led ★★★☆☆
()
Ответ на: комментарий от kostik87

Мда. Что за любовь у никсобратии к постройке велосипедов.

Немножечко еще погуглив нашел нормальное решение - udisks-glue. Даже в портаже есть.

wolfy
() автор топика
Ответ на: комментарий от wolfy

Смотря что считать велосипедом, уважаемый.

Udisk в некотором роде тоже велосипед, т.к. обрабатывает события udev. К тому же я лучше обойдусь теми средствами, которые есть, udev может полностью решить вашу проблему, без установки дополнительного софта, если вам нравится ставить лишнее в систему - пожалуйста.

kostik87 ★★★★★
()

Скрипт для удева не выглядит хорошим вариантом из-за, например, проблем с правами. Да и вообще костылей там надо нагородить порядочно.

4.2 жесточайшее! Ибо Automatic backups with UDEV Засим - ниосилятор и отмазка не принята!

init_6 ★★★★★
()
Ответ на: комментарий от init_6

Вот я об этом же и говорю. Как пять лет назад правила удева писали, так и сейчас пишем. Кривые, убогие, конфликтующие с DE-автомаунтерами.

Хотя все успешно и красиво решается уровнем выше. И ладно бы это «уровнем выше» не существовало, так нет же, все есть, но мы лучше по-старинке.

Если вам содержимое вашей ссылки не кажется горожением костылей - я за вас очень-очень рад, ваши интеллектуальные способности на высоте и молодецкого задора вам не занимать. А я - старый, усталый человек, мне уж как-нибудь попроще, без конфликтов, с возможностью отмонтировать примонтированное от юзера, с правильно проставленными на смонтированное и сбэкапленное правами. Ну, как-то так.

wolfy
() автор топика
Ответ на: комментарий от kostik87

> Udisk в некотором роде тоже велосипед

udev может полностью решить вашу проблему

Udev-то может решить, но чтобы его довести до ума, надо написать udisks, а сверху еще навернуть еще демона.

Да-да, я помню автомонтирование флешек удевом в консоли, сам сношался в свое время. И множество проблем помню. Спасибо, наелся.

Инфраструктурные решения - *kit, udisks, pulseaudio - нужны. Они экономят мое время и нервишки. И как бы не вопили местные _неосиляторы_, за развитой инфраструктурой будущее.

wolfy
() автор топика
Ответ на: комментарий от wolfy

Я понимаю, что вам так удобно и не хочется в чем-то разбираться, поставить пару галочек, или раскомментировать парус строк в конфигурационном файле проще, но написать правило для udev, которое вызывается при добавлении в систему определённого устройства, монтирует файловую систему, запускает бэкап, затем размонтирует или даёт доступ к ней другим пользователям - это всё в одном скрипте, займёт всего несколько строк. И этот скрипт вместе с правилом для udev можно переносить на другую систему без изменений, к тому же на системе, где нет udisks и udisks-glue их не нужно будет ставить. Иными словами это универсальное решение. Тем более этот скрипт можно применять на системах, где нет графической оболочки, к примеру серверах.

Бывает тяжело привыкнуть к написанию вручную сценариев тем, кто привык тыкать мышью в графическом интерфейсе Windows, ну чтож, если им так проще пожалуйста.

Я считаю, что нагромождать систему лишним софтом, для каждой задача не стоит, если задачу можно решить уже имеющимися средствами. Нужно использовать уже установленный софт, к тому же если он общесистемный и был для этого написан.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Это кривое решение.

Проблем много. Во-первых, оно сломает все, что работает сверху (и этого, вообще говоря, достаточно).

Во-вторых, процесс получится неконтролируемым.

В-третьих, удев ничего не знает о том, что за юзер воткнул флешку.

Я с удевовскими правилами насношался еще в пятом году. Спасибо, больше не хочу.

wolfy
() автор топика
Ответ на: комментарий от wolfy

Что конкретно оно сломает, возможность размонтирвания - это решается опциями монтирования или перемонтирования после завершения бэкапа, опции я указал несколькими сообщениями выше. Если поломка вами видится только в этом - то её не будет.

Насчёт контроля - это вам решать - вы написали, что хотите реализовать бэкап при подключении носителя, иными словами раз устройство подключено нужно запускать бэкап. Какой контроль вы ещё хотите, вашему заданию это всё удовлетворяет, если некоторую другую форму бэкапа хотите, то это тоже всё можно решить, к примеру если вы подключаете накопитель в определённое время то только в этом случае запускать бэкап, но как я уже сказал вы описали другой случай - запуск бэкапа при подключении накопителя каждый раз.

Насчёт юзера - вы тоже ни чего не написали, но эту проблему вы из пальца высосали, ибо флешкой пользуется только один человек, следовательно если накопитель подключен - то его мог подключить только определённый человек и пользователь соответственно.

Так что все ваши проблемы решаются разумным подходом иными словами их нет, остаётся только одна - вы не хотите разбираться с написанием правила длч UDEV и скрипта, вам на это уже указывал я и другие комментаторы в вашем теме.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Я действительно не хочу разбираться с тем, с чем можно не разбираться при лучшем результате.

wolfy
() автор топика
Ответ на: комментарий от wolfy

Ну вот с этого и надо было начать - вам лень. А насчёт лучшего результата я вам уже ответил - вы выбрали решение узконаправленное, оно будет работать только в определённых условиях, с определённым софтом.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

udev - тоже линупс-онли поделие. Так что никакой разницы.

wolfy
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.