Делаем backup на on-line сервисы



Technorati Tags: backup, online file service, duplicity, wdfs, mydisk.se

Привет всем. Все наверное слышали о программе gmail drive, которая позволяет использовать почтовый ящик на гугле как виртуальный винчестер. У нее есть аналог под *nix системы, написанный на питоне - gmailfs. Так вот, для начала я и хотел использовать google для хранения своих backup'ов.
Но протокол imap не очень быстрая штука, да еще с моей скоростью интернета, поэтому после нескольких пробных запусков я решил искать какую нибудь другую, более быструю альтернативу.
В сети существует множество on-line сервисов для хранения на них данных, но не все они подходят для задуманной цели :) Мне нужен был сервис удовлетворяющий следующим параметрам:
- Возможность работы с сервисом напрямую, без веб-интерфейса(ftp,ssh,rsync)
- Фриварность
- Поддержка русского языка
- Шифрование хранимых на сервере данных
- Отсутствие ограничения на объем загружаемого файла

Кто ищет - тот всегда найдет
Первоначально я попал на один из крупнейших ресурсов, предоставляющих данные услуги - www.box.net. Но к сожалению, у них на бесплатном аккаунте стоит ограничение - максимальный размер загружаемого файла - 25 мб. Это совершенно меня не устраивало и я продолжил поиски. Отбросив по тем или иным причинам, еще штук 10 сервисов я все таки смог найти то, что хотел. mydisk.se - шведский ресурс, предоставляющий 2 GB свободного места в бесплатном аккаунте.
На сервисе имелся доступ по webdav, что не могло не радовать, но, к сожалению, ничего не было сказано о том, в каком виде данные хранятся на сервере, т.е. шифруются или лежат в открытом виде :(

Зарегистрировавшись, я узнал, что сервис предоставляет так же доменное имя вида - www.Имя пользов..mydisk.se и фото страницу, это меня конечно совсем не интересовало. Зато захотелось подключить эти 2 GB как отдельный диск в мою систему. Погуглив, я нашел проект некоего немецкого/их разработчика/ов - wdfs. wdfs - это файловая система webdav, которая может быть примонтирована с помощью fuse. И я решил попробовать:

linux-wrym:/mnt # zypper install wdfs

У wdfs множество параметров, но я остановлюсь только на основных, которые нам понадобятся:
accept_sslcert - принимать ssl сертификат, когда идет работа с webdav через ssl
username - имя пользователя
password - пароль пользователя
allow_other - рзрешать другим пользователям доступ к смонтированной папке

Итак, монтируем webdav как локальную папку(все действия делаем под рутом):

linux-wrym:/ # wdfs https://mydisk.se/USERNAME/backup/ /mnt/backup -o username=USERNAME -o password=PASS -o accept_sslcert -o allow_other

Я изначально монтировал не просто диск сервиса, расположенный по адресу https://mydisk.se/USERNAME/ , а сразу папку backup, потому что к ней закрыт доступ через WEB другим людям. Не стоит хранить ваши бэкапы там, где их могут скачать другие :)
И как человек ленивый - сразу добавил запись в fstab, чтобы не набирать больше полностью команду:

wdfs#https://mydisk.se/USERNAME/ /mnt/backup fuse noauto,users,accept_sslcert,allow_other0 0

Я специально не стал вписывать username и password, потому что это потенциальная угроза безопасности, пароль спросят при монтировании, это гораздо безопаснее, чем держать их в fstab в открытом виде. Итак, подключаем диск:

linux-wrym:/mnt # mount /home/_empty/mount/backup

Все, диск для backup'а у вас в системе есть. Можете полазить в нем, попробовать что-нибудь туда скопировать, или создать папку :)

duplicity
Итак, диск есть, данные есть, так давайте сделаем backup. Но прежде определимся, чем и как мы будем это делать. Я конечно знаю насколько мощный инструмент rsync, к нему создано много gui'ев, но здесь я его использовать не рекомендую. Все дело в том, как я писал выше, что неизвестно используется на сервере шифрование или нет. Поэтому, чтобы быть уверенным в сохранности своих данных, я решил воспользоваться другой утилитой - duplicity. Если вы рьяный сторонник gnu, то можете поискать другой способ, но есть ли смысл? :)
Вы можете загрузить rpm пакет или тарбол , конечно для пользователей SuSE в нашем любимом build-service уже есть готовые пакеты - duplicity У программы очень много возможностей, но я в кратце расскажу как ее пользуюсь ей.

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

export PASSPHRASE="your_pass_phrase"

Пожалуйста не поленитесь почитать хотя бы help к duplicity, там очень много полезной информации. Итак, запускаем программу:

duplicity -v 5 /home/_empty/Documents/ file:///mnt/backup

После этого duplicity создаст gpg файлы на сервере, в которых будут храниться все файлы и произведенные в них изменения. При последующих запусках duplicity будет загружать не сами файлы, а различия(diff-файлы), все зашифровано, так что можете не беспокоится о конфиденциальности ваших данных.
Вы всегда можете посмотреть все изменения созданные с начала backup'а:

_empty@linux-wrym:~> duplicity collection-status file:///mnt/backup/

Если никаких ошибок не было, то у вас будет примерно вот такой вывод(часть листинга опущена):

Archive dir: None

Found 0 backup chains without signatures.

Found a complete backup chain with matching signature chain:
-------------------------
Chain start time: Thu Apr 30 13:58:59 2009
Chain end time: Fri May 1 11:53:54 2009
Number of contained backup sets: 11
Total number of contained volumes: 34
Type of backup set: Time: Num volumes:
Full Thu Apr 30 13:58:59 2009 23
Incremental Thu Apr 30 15:17:34 2009 1
Incremental Thu Apr 30 15:42:54 2009 2
Incremental Thu Apr 30 15:49:54 2009 1
Incremental Thu Apr 30 16:01:23 2009 1
Incremental Thu Apr 30 16:04:08 2009 1
Incremental Thu Apr 30 16:35:52 2009 1
Incremental Thu Apr 30 18:12:36 2009 1
Incremental Fri May 1 01:40:37 2009 1
Incremental Fri May 1 11:49:46 2009 1
Incremental Fri May 1 11:53:54 2009 1
-------------------------
No orphaned or incomplete backup sets found.

Вот так можно просмотреть текущий список файлов, которые находятся в бэкапе:

_empty@linux-wrym:~> duplicity list-current-files file:///mnt/backup/

Программа duplicity - мощный инструмент, и если вы научитесь им пользоваться - это сильно упростит вам жизнь. duplicity поддерживает кучу протоколов, среди которых тот же самый IMAP(см. выше). Я думаю, вы оцените преимущество хранения данных на удаленном сервере. Рекомендую делать плановый автоматический backup через cron. Главное помните - не храните все яйца в одной корзине, и сможете забыть о проблемах с данными и их backup'ом.

GD Star Rating
loading...
Делаем backup на on-line сервисы, 8.3 out of 10 based on 3 ratings

01.05.2009 · Сергей · 6 комментария (-ев)
Метки: ,  · Рубрики: Linux/SuSE

6 комментария (-ев)

  1. guest - 25.06.2009

    А вот чего мне не хватило? duplicity восстанавливает только самый последний бэкап. Если в хранилище бэкапа удалить все инкрементальные бэкапы и оставить полный — восстановит полный. Версия 0.5.18. Что делать? :-(

  2. sapfeer0k - 25.06.2009

    Попробуй откатиться назад duplicity —remove remove-older-than ВРЕМЯ

    А потом восстановить более старую версию и все-так почаще делай фуллбэкап

  3. born - 02.12.2009

    Разобрался…
    При восстановлении необходимо указывать еще смещение времени, у меня получилось с +04:00:

    duplicity restore —no-encryption -t2009-06-24T13:07:40+04:00 file:///data/duplicity /data/y/

    Тогда восстанавливается нужный бэкап.

    Только вот еще есть трабла. Понятно как из бэкапа восстановить конкретный файл, а как восстановить конкретную папку с файлами и подпапки, т.е. не весь бэкап, а только часть?

  4. Сергей - 08.12.2009

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

  5. born - 11.12.2009

    Вот здесь человек вроде как может конкретную папку восстановить:
    http://forum.dklab.ru/viewtopic.php?t=10990&postdays=0&postorder=asc&highlight=

    Я пока не разобрался как он это делает, может кто разберется :)

  6. Aviv - 05.07.2010

    Уже сервис не бесплатный. Тестируешь месяц, потом деньги плати