Решение давно известно - BTsync. Однако сегодня пришлось подружить его с Yandex.Disk
Причина проста - есть сеть, из которой BTsync не работает, но работает Я.Диск. Синхронизация документов на Я.Диске между домашним заоблачным NAS и остальными устройствами превращается в рукотворную PITA. НО! "Правильные движения приходят на базе усталости" Ник-Ник
Что делать?
Воспользуемся возможностью подключения к Я.Диску через WebDAV. А именно посредством davfs2, дающим доступ к удаленным ресурсам как через обычную файловую систему, т.к. BTsync работает только с локальными ресурсами. Не надуешь, не поедешь...
Итак, мы запустим на домашнем сервере демона синхронизирующего домашнее облако с облаком на серверах Яндекса.
Процесс
Во-первых, локализуем Я.Диск. Подробно процесс изложен в статье Яндекс.Диск в лапах пингвина. Если коротко, то нужно:
- установить пакет davfs2 (для openSUSE это в репозитории filesystems. Команда в консоли: zypper ar http://download.opensuse.org/repositories/filesystems/openSUSE_13.1/ filesystems && zypper in davfs2)
- прописать в его настроечном файле /etc/davfs2/secrets логин:пароль для доступа к ресурсу (ведь не будет же сервер спрашивать у Вас пароль каждый раз). Доступ к файлу нужно ограничить - chmod 600 ...
- в настройках монтирования файловых систем /etc/fstab пропишем наш ресурс: https://webdav.yandex.ru /media/webdav/yadisk davfs gid=nogroup,uid=nobody 0 0, где nogroup и nobody, соответственно группа и пользователь, кто будет собственником каталога с примонтированным ресурсом.
- Если, после монтирования командой mount /media/webdav/yadisk, Вы увидите в этом каталоге знакомые файлы, Вы достигли промежуточной цели.
Во-вторых, подвязать BTsync к синхронизации. Оказывается он не умеет синхронизировать один и тот же ресурс в два разных каталога. То есть демон работает с одной копией секрета. Но и на этот случай есть лайфхак. Демона должно запускать с указанием конфигурационного файла. И запускать их можно ... сколько угодно.
- сделаем скрипт, выпускащий демонов из бутылки, при загрузке системы (crontab -e --> @reboot /usr/bin/BTsync)
!/bin/bash
mkdir -p /var/run/btsync/
/opt/BTsync/btsync --config /opt/BTsync/btsync.conf
/opt/BTsync/btsync --config /opt/BTsync/btsync.yadisk.conf
- в настройках Я.Демона пропишем в явном виде ресурсы, которые нужно синхронизировать (при этом отвалится веб-морда этого демона, но мы будем видеть его присутствие через морду первого демона.):
{
"device_name": "V.Oz. at YaDisk",
"listening_port" : 22222, // 0 - randomize port
"shared_folders" :
[
{
"secret" : "A47T3UONZLB3GCQGL2ZJMUDM36JGJHZHA",
"dir" : "/media/webdav/yadisk/private/BTsync/keepass",
"use_relay_server" : false,
"use_tracker" : true,
"use_dht" : false,
"search_lan" : true,
"use_sync_trash" : true,
"known_hosts" :
[
"192.168.0.3:33333"
]
},
{
"secret" : "AORAQEGEICOKLBGERHM27CARVWP4IWGUJ",
"dir" : "/media/webdav/yadisk/private/BTsync/BTsync",
"use_relay_server" : false,
"use_tracker" : true,
"use_dht" : false,
"search_lan" : true,
"use_sync_trash" : true,
"known_hosts" :
[
"192.168.0.3:33333"
]
}
]
}
Примечание: опция "известные хосты" позволяет напрямую синхронизироваться с ресурсами в локальной (или не очень) сети без поиска их на трекере. При этом указаны конкретные порты, которые следует прописать в настройках соответствующих демонов.
Итого
В итоге получаем автоматическую синхронизацию двух облаков - личного и не очень.
Причем Яндексом список такого рода сервисов не ограничивается. Мегафон также предлагает доступ к своему МегаДиску небольшого объема, но с бесплатным мобильным трафиком в домашней сети как в рамках специального приложения, так и по WebDAV (специально наводил справки у @MegaFonHelp). То есть, монтируем еще один ресурс, создаем еще один конфиг и выпускаем еще одного демона.
Комментариев нет:
Отправить комментарий