Как стать автором
Обновить

Комментарии 36

НЛО прилетело и опубликовало эту надпись здесь
Уже вспомнил, как только в ленте увидел.
Приношу извинения :) первый пост...
да нет, вполне нормально
автору спасибо
Ужас.
В видне можно сделать гораздо проще: autorun.inf с ссылкой на батничек с командами ntbackup-у
НЛО прилетело и опубликовало эту надпись здесь
jedem das seine
Задумка немного другая - не винт привязать, а систему научить распознавать устройства и обрабатывать их. То есть в идеале устройство куда бекапимся - любое и совершенно не важно что на нем лежит.
К тому же ntbackup значительно уступает по функциональности sbackup.
хм, ко мне в гости ходит много народу, для них есть гостевой ноут
но вот если я буду юзать подобную шнягу, то кто-то может просто унести данные и я об этом знать не буду
вопрос безопастности, думаю ход мыслей ты понял
в целом реализация супер
Можно решить как я уже описал добавлением параметров для уникальности, например серийника.
Но с другой стороны, если использовать autorun.inf, то любой получивший доступ к usb с большой вероятностью сможет сделать с системой что угодно.
RUN+="/usr/local/bin/usb-backup"

это автозапуск что-ли?
Это не совсем автозапуск. Этот скрипт выполняется если устройство подходит под описанные условия, важно что он выполняется с привилегиями root'а в отличие от автозапуска который выполняется от текущего пользователя. Таким образом можно сделать более полный бекап т.к. прав доступа хватит на все.
Может быть вместо idVendor/idProduct, которые по идее одинаковые для всех хардов одной модели, стоит попробовать прязаться к серийнику или к UUID раздела? А то действительно, кто-нибудь вставит такой же винт и унесет бэкап.
Согласен, полностью. Тут каждый для себя настраивает совокупность параметров для уникальности.
Пожалуй стоит это упомянуть.
НЛО прилетело и опубликовало эту надпись здесь
Всем спасибо за плюсы. Перенес топик в Убунтариум. Думаю ему там самое место.

Есть продолжение истории. Порой случается (как у меня), что винт который используется для бекапа параллельно используется для хранения других данных. В таком случае бекапиться при каждом подключении - не всегда полезно, иногда хочется, чтобы перед началом бекапа система спросила а надо ли сейчас это делать и если ей не ответили начать потихоньку свое черное дело в фоне...

Для решения этой проблемы я написал немножко кода на питоне. Пришлось обойти пару узких мест (связанных с тем, что запускается это от root'а).

Жить второму топику?
Однозначно жить. Тем более, что данная вещь применима не только в Убунте. Предлагаю перенести в Linux для всех.
мало того, она применима не только в линукс (-:
Не понял, а где собственно выполняется монтирование?
Монтирование выполняется автоматически HAL'ом на основании информации из fstab. Скрипт запускается в фоне и ждет пока все примонтируется.
ЗдОрово, не знал, что HAL это умеет
Это 5!!! Автору + в карму!
раз автор так искушен в вопросах бекапа, у меня есть реквест на следующий хабратопик: а как делать автоматический бекап на smb шару при появлении связи до неё?
crontab + touch и его EXIT STATUS
Не плохо, правда у меня всё несколько проще:
~ $ cat bin/mybkp.sh
#!/bin/bash

tar zvcf /media/backup/backup-`date '+%F'`.tar.gz --listed-incremental=/media/backup/backup.snar ~/ --exclude=Videos --exclude=Music --exclude=Public --exclude=.wine --exclude=.thumbnails --exclude=.VirtualBox --exclude=.cache --exclude=.ies4linux --exclude=/home/redchrom/.mozilla/firefox/*/Cache --exclude=/home/redchrom/.liferea_1.4/mozilla/liferea/Cache/ --exclude=.rnd --exclude=/home/redchrom/workspace/.metadata

И ручками запускаю :)
странно, а у меня не работает, все равно монтируется как обычно /media/disk, /dev/backup не появляется
помогло вот это:
BUS=="usb", SYSFS{idVendor}=="04cf", SYSFS{idProduct}=="8818", ATTRS{serial}=="100", KERNEL=="sd?1", NAME="backup", GROUP="storage"
только все равно пытается примонтировать в /media/backup и выходит ошибка что нету директории, как бы это отключить :)
а чтобы сделать то же, но с помощью rsync на удаленный сервер, что надо поменять? :)
То же - это что? Просто функциональность rsync есть в sbackup. Чтобы бэкапиться на удаленный сервер надо его настройки править. Но смысла я тут большого не вижу... Фишка была чтобы обработать событие подключения конкретного устройства и бэкапнуться на него... А в сеть можно и без всего этого. Тем же кроном как советуют выше проверить доступность сервака и запустить скрипт. Разве что в два места бэкапиться при подключении... на винт и в сеть.
то же - инкрементный бекап
спасибо, отличная заметка.
Спасибо. Очень интересно.
Не подскажите, можно ли выполнить скрипт бэкапа не от рута а от текущего пользователя

Кстати, udev можно не перезапускать — он и так подхватывает настройки.
Не от рута не получится sbackupd ругнется. Теоретически можно наверное, но тогда нельзя будет системные файлики бекапить.
Я хочу немножко для другого это приспособить. Идеальный вариант был бы таков — если мой пользователь залогинен, то копируем файлы, если нет то не копируем.
Кстати, я вчера пробовал провернуть хитрость с udev когда девайс разбит на два раздела. Оказалось, у них вывод udevinfo почти идентичен, за ислючением размера и некоторых параметров, которые меняются при каждом подключении.
Предупреждение для тех, кто будет делать это на убунту 9.04. сегодня пару часов помучался пока мне дошло, что в 9.04 правила Udev переехали из /ect/udev/rules.d в /lib/udev/rules.d/. а в реадми из /etc/udev/rules.d нетёб этом ни слова.
Как раз собираюсь переезжать :) возьму на заметку.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории