Linux webdav
И так, продолжаем нашу серию "Нищеброду на заметку".
На этот раз будем делать простое, шифрованное и
расширяемое WebDAV хранилище для барахла.
Речь далее пойдёт о таких штуках как encfs и WebDAV, и если вы не знаете, что эти слова обозначают, то имеет смысл срочно их налуркать.
Архитектура нашего хранилища будет следующей:
encfs:
mhddfs:
davfs0
davfs1
...
davfsN
Структуру примем за следующую:
/mnt/fuse/<fstype>/<user>/<service provider>/[#]
Будем исходить из предположения, что вы уже подготовили и настроили пачку WebDAV хранилищ. Откуда их брать, решайте сами. Со своей стороны могу порекомендовать disk.yandex.ru и, соответственно. вся кухня будет из расчета на этот сервис. Впрочем, вы можете легко добавить/поменять на всё, что угодно. Даже, необязательно, чтобы это было на WebDAV'е, например,
github.com позволит вам припрячь Dropbox или Sugarsync. Главное, хранилища должны быть доступны как обычные директории.
Далее решим вопрос объединения пачки наших хранилищ в одно. Проще всего это сделать c sys-fs/mhddfs —
mhddfs.uvw.ru (а вот ридми, на почитать:
svn.uvw.ru
Следущий шаг — EncFS. Создадим необходимую конфигурацию и поместим к себе в дом :3
$ mkdir /tmp/temp1 /tmp/temp2
$ encfs /tmp/temp1 /tmp/temp2
$ fusermount -u /tmp/temp2
$ mkdir ~/.encfs
$ cp /tmp/temp1/.encfs6.xml ~/.encfs/yandex.xml
$ echo "<pass> > ~/.encfs/yandex.pwd
В дальнейшем, можем указывать конфиг для encfs через переменную:
export ENCFS6_CONFIG="${HOME}/.encfs/yandex.xml"
За конкретными инструкциями, как это дело запускать и останавливать можете обратиться к следующему мини-скрипту:
qmellon.googlecode.com
В итоге, df -h может показать вам, например, такое:
webdav.yandex.ru 10G 0 10G 0% /mnt/fuse/dav/user/yandex/0
webdav.yandex.ru 10G 0 10G 0% /mnt/fuse/dav/user/yandex/1
webdav.yandex.ru 10G 0 10G 0% /mnt/fuse/dav/user/yandex/2
webdav.yandex.ru 10G 0 10G 0% /mnt/fuse/dav/user/yandex/3
webdav.yandex.ru 10G 0 10G 0% /mnt/fuse/dav/user/yandex/4
webdav.yandex.ru 10G 0 10G 0% /mnt/fuse/dav/user/yandex/5
webdav.yandex.ru 10G 0 10G 0% /mnt/fuse/dav/user/yandex/6
/mnt/fuse/dav/user/yandex/0/enc;/mnt/fuse/dav/user/yandex/1/enc;/mnt/fuse/dav/user/yandex/2/enc;/mnt/fuse/dav/user/yandex/3/enc;/mnt/fuse/dav/user/yandex/4/enc;/mnt/fuse/dav/user/yandex/5/enc;/mnt/fuse/dav/user/yandex/6/enc 70G 0 70G 0% /mnt/fuse/mhddfs/user/yandex
encfs 70G 0 70G 0% /mnt/fuse/encfs/user/yandex