У Яндекс.Диска есть официальный клиент под Linux. Однако, в отличие от клента для Windows, он не имеет графического интефейса и работает из командной строки. Уже не помню точно почему, но почему-то это показалось мне не лучше связки davfs-rsync.
Подробности под катом ...
Подробности под катом ...
Порядок работы
При помощи davfs2 монтируем наше хранилище как удаленную файловую систему. Теперь можно работать почти также, как если бы все хранилось у нас на компьютере. Именно почти, потому что на самом деле все хранится удаленно и операции (открыть папку, удалить файл) будут происходить с задержкой. Чтобы избежать задержек, можно создать локальную (рабочую) копию всех файлов и время от времени производить синхронизацию рабочией копии с примонтированным Яндекс.Диском. Очевидно, за это придется заплатить дисковым пространством. Для синхронизации можно использовать rsync. А чтобы сделать процесс автоматическим можно настроить cron, чтобы он периодически запускал скрипт синхронизации.
Для быстрого старта, конечно, лучше установить клиент. Однако, если нужно что-то нестандартное --- сделать можно практически все... почитав документацию, форумы и stackoverflow
Краткая последовательность действий
Для подробностей и объяснений см. приведенные ниже ссылки
Устновить davfs2:
sudo apt-get install davfs2
Добавить текущего пользователя в группу davfs2:
sudo adduser $USER davfs2
Разрешить непривеллигированным пользователям монтировать удаленную файлову систему:
sudo dpkg-reconfigure davfs2
Создать папку, в которую смонтируется Яндекс.Диск:
sudo mkdir /media/yandex.disk
можно монтировать в любую папку, но если монтировать в /media, то в файл-менеджере автоматически появится закладка для монитрования/размонтирования (как для usb флэшки).
В файл /etc/fstab добавить строку:
https://webdav.yandex.ru /media/yandex.disk/ davfs noauto,user 0 0
В файл ~/.davfs/secrets добавить строку:
https://webdav.yandex.ru user@yandex.ru myPassword
(заменить user@yandex.ru и myPassword на свои логин и пароль) и установить ограничения на доступ к файлу:
chmod 600 ~/.davfs2/secrets
(без этого не заработает).
Наконец, для подключения (монитрования) Яндекс.Диска в файловом менеджере нажать появившуюся закладку yandex.disk или в терминале набрать:
mount https://webdav.yandex.ru
если все прошло по плану, то в созданной ранее папке /media/yandex.disk появятся файлы из вашего Яндекс.Диска. Если возникли проблемы --- пишите в комментарии, попробуем разобраться. Можно работать прямо с ними. Если задержки при работе будут большими, то можете создать локальную копию файлов или отдельных папок (например в домашнюю директорию) и периодически синхронизировать файлы в /media/yandex.disk с локальной копией. Для синхронизации можно использовать rsync и cron. Все подробности в материалах ниже.
Материалы
Материалы, которые помогли мне настроить все это дело приведены ниже
Подключение по davfs и синхронизация rsync
Пример скрипта подключения и синхронизации:http://disk-blog.ya.ru/1088/1113#reply-disk-blog-1113
Инструкции по подключнию удаленной файловой системы с помощью davfs2:
http://help.ubuntu.ru/wiki/davfs2
Подключение удаленной фс и шифрование папок в облаке:
http://habrahabr.ru/post/143821/
Синхронизация (только) отдельных папок
http://stackoverflow.com/a/15701772
Автоматическая синхронизация
Пошаговая инструкция по автоматической синхронизации с помощью rsync+cron
Чтение логов rsync
Расшифровка символов, которые печатает rsync в ходе работы:
Руководство по rsync
Очень советую не пренебрегать руководством: оно написано в дружественной манере и содержит примеры с объяснениями. Кроме того, есть перевод:
Скрипт синхронизации
Мой скрипт синхронизации. Файл дан для примера. Скрипт никак не учитывает конфликт версий. Это значит, если вы отредактировали один и тот же файл на двух разных компьютерах, то версия с более поздним временем сохранения потрет версию с более ранним --- хотя ценные изменени есть в обеих версиях, одна из которых будет утеряна, т.е. будет потеряна часть (и вполне возможно важная часть) работы. Официальный клиент Яндекс.Диска, насколько я помню, разрешает конфликт, переименовывая один из файлов. Таким образом, пользователь имеет возможность сам решить, что делать дальше с разными версиями. В скрипте такого нет. Выхода два: либо как-то это настроить (может параметры rsync помогут, а может нужен другой подход), либо не допускать таких конфликтовСкрипт: https://yadi.sk/d/RzeTVKydUwCGb
Файл со списком включенных директорий: https://yadi.sk/i/e32lncPRUwJcK (нужен для работы скрипта)
Замечания и дополнения приветствуются в комментариях
Комментариев нет:
Отправить комментарий