Делаем backup на on-line сервисы
Technorati Tags:
Привет всем. Все наверное слышали о программе gmail drive, которая позволяет использовать почтовый ящик на гугле как виртуальный винчестер. У нее есть аналог под *nix системы, написанный на питоне - gmailfs. Так вот, для начала я и хотел использовать google для хранения своих backup'ов.
Но протокол imap не очень быстрая штука, да еще с моей скоростью интернета, поэтому после нескольких пробных запусков я решил искать какую нибудь другую, более быструю альтернативу.
В сети существует множество on-line сервисов для хранения на них данных, но не все они подходят для задуманной цели Мне нужен был сервис удовлетворяющий следующим параметрам:
- Возможность работы с сервисом напрямую, без веб-интерфейса(ftp,ssh,rsync)
- Фриварность
- Поддержка русского языка
- Шифрование хранимых на сервере данных
- Отсутствие ограничения на объем загружаемого файла
Кто ищет - тот всегда найдет
Первоначально я попал на один из крупнейших ресурсов, предоставляющих данные услуги -
На сервисе имелся доступ по 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'ев, но здесь я его использовать не рекомендую. Все дело в том, как я писал выше, что неизвестно используется на сервере шифрование или нет. Поэтому, чтобы быть уверенным в сохранности своих данных, я решил воспользоваться другой утилитой -
Вы можете загрузить
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'ом.
loading...
01.05.2009
· Сергей · 6 комментария (-ев)
Метки: Backup, Linux · Рубрики: Linux/SuSE
6 комментария (-ев)
guest - 25.06.2009
А вот чего мне не хватило? duplicity восстанавливает только самый последний бэкап. Если в хранилище бэкапа удалить все инкрементальные бэкапы и оставить полный — восстановит полный. Версия 0.5.18. Что делать?
sapfeer0k - 25.06.2009
Попробуй откатиться назад duplicity —remove remove-older-than ВРЕМЯ
А потом восстановить более старую версию и все-так почаще делай фуллбэкап
born - 02.12.2009
Разобрался…
При восстановлении необходимо указывать еще смещение времени, у меня получилось с +04:00:
duplicity restore —no-encryption -t2009-06-24T13:07:40+04:00 file:///data/duplicity /data/y/
Тогда восстанавливается нужный бэкап.
Только вот еще есть трабла. Понятно как из бэкапа восстановить конкретный файл, а как восстановить конкретную папку с файлами и подпапки, т.е. не весь бэкап, а только часть?
Видимо никак
Но ничего не мешает нам восстановить бэкапы в другую папку, и то что нам нужно забрать из нее, правда не очень это эффективно получается.
born - 11.12.2009
Вот здесь человек вроде как может конкретную папку восстановить:
http://forum.dklab.ru/viewtopic.php?t=10990&postdays=0&postorder=asc&highlight=
Я пока не разобрался как он это делает, может кто разберется
Уже сервис не бесплатный. Тестируешь месяц, потом деньги плати