12.08.2018 21:29
OlegON
 
Дошли тут руки до подаренных 100Гб на Яндекс.Диске. Не пропадать же добру...
Стал разбираться, как же ими можно воспользоваться.
Для начала сразу оговариваю, что клиенты с GUI мне совсем не нужны, речь шла о том, чтобы периодически скидывать не очень нужные и зашифрованные файлики "про запас" с сервера, где никаких десктопов нет, поэтому штатные десктопные утилитки я не буду рассматривать вообще.

Итак, самый простой и хорошо описанный способ - консольная утилита от самого Яндекса. Работает куда шустрее webdav, который используется во всех остальных случаях, но все время просится в демоны и в целом как-то не очень уютно было ее использовать... Еще, не дай, удалится что-то на диске, а эта штука обратно засинхронизирует все... Кроме того, синхронизируется строго одна директория. Т.е. нельзя несколько накидать в разные потоки и ждать, пока на Диск засинхронизируется.

Второй способ именно для закидывания нескольких файликов. Вещь.
Код:
curl --user user@yandex.ru:password -T "{file1.zip,file2.zip}" https://webdav.yandex.ru/
с ним, мне кажется, все вообще очевидно... Вводим свои имя-пароль и кидаем файлики сколько душе угодно. Работает и укладывание в поддиректории. Как удалять - не разбирался.

Третий, наиболее подходящий для массовой синхронизации, но, малость нестабильный и дико тормозной по непонятной для меня причине способ. Да, это про webdav в виде файловой системы. Для начала надо будет поставить davfs2 вашим пакетным менеджером. Затем, в файлике /etc/davfs/secrets прописать строку
Код:
https://webdav.yandex.ru ваш_логин ваш_пароль
это избавит от соответствующих вопросов при монтировании. И, соответственно, монтируем, например, так...
Код:
mount -t davfs https://webdav.yandex.ru /mnt/yandex
Вот и все... Теперь в /mnt/yandex у вас содержимое Яндекс.Диска в rw. Можно туда и обратно что-то скопировать, либо воспользоваться rsync. Обратите внимание, что owner/groups лучше на диске не трогать, поэтому пользоваться чем-то вроде
Код:
rsync -rtv
из неприятного - сервак webdav у Яндекса тормозит, поэтому, какой бы у вас канал ни был, больше 2Мб/сек в среднем не взлетает. При этом еще долгие sync и неочевидные ошибки при проблемах соединения.

В целом же - вполне себе подходящая штука для каких-то дублей бекапов.
13.08.2018 19:32
OlegON
 
У Яндекс.Диск (первый вариант) обнаружилась еще особенность... В данный момент при отсутствии каких-либо движений она занимает 3Гб памяти.
14.08.2018 20:39
OlegON
 
И у монтирования davfs выяснился серьезный минус. Эта хреновина наращивает /var/cache/davfs2 и плевать хотела на директиву cache_size в конфиге. У меня выжрала все свободное место на системном диске, после чего rsync упал. Ну и ни хрена себе :(
14.08.2018 20:58
OlegON
 
Нашел еще один способ синхронизации - программа cadaver.
К моей печали, она не может рекурсивно заливать файлы, потому для меня малополезна. Но желающие поупираться именно в этот способ, могут внимательно присмотреться к такому скрипту.
Код:
#!/bin/sh

usage () { echo "$0 <src> <cadaver-args>*" >/dev/stderr; }
error () { echo "$1" >/dev/stderr; usage; exit 1; }

test $# '<' 3 || \
    error "Source and cadaver arguments expected!";

src="$1"; shift;
test -r "$src" || \
    error "Source argument should be a readable file or directory!";

cd "$(dirname "$src")";
src="$(basename "$src")";
root="$(pwd)";
rc="$(mktemp)";
{
    find "$src" '(' -type d -a -readable ')' \
    -printf 'mkcol "%p"\n';
    find "$src" '(' -type f -a -readable ')' \
    -printf 'cd "%h"\nlcd "%h"\n'            \
    -printf 'mput "%f"\n'                    \
    -printf 'cd -\nlcd "'"$root"'"\n';
    echo "quit";
} > "$rc";

cadaver -r "$rc" "$@";
rm -f "$rc";
для него надо будет прописать имя пользователя и пароль в ~/.netrc, чтобы на каждый файл его не вводить.
14.08.2018 21:22
OlegON
 
Нашел еще один вариант. Вроде и работает :)
Утилитка rclone. Поддерживает Yandex.Disk из коробки.
Сначала надо сделать
Код:
rclone config
идентификаторы и секрет заполнять не надо - вылезет браузер с авторизацией, создайте репозиторий reponame (обзовите его как хотите, я для примера)
Потом
Код:
rclone sync -v --fast-list /mnt/backup reponame:/backup
достаточно шустро копирует... Вроде, нигде больше не гадит... Кстати, эта утилита работает еще с кучей других облачных хранилищ.
23.02.2020 13:38
OlegON
 
На данный момент Яндекс продемонстрировал гнильцу и заблокировал rclone.

2020/02/23 12:34:06 ERROR : : error reading destination directory: [401 - UnauthorizedError] Unauthorized (Не авторизован.)

если не поправят, буду искать себе другое хранилище...
23.02.2020 15:51
DEeMON
 
Блин, вот какашки. У меня туда копии бекапов складывались на случай ядерной войны. Если не будет работать, то придется другое хранилище использовать
24.02.2020 08:52
OlegON
 
Цитата:
Добрый день, что за ерунда с блокировкой rclone? Я купил себе терабайт ЯДиска для домашних бекапов и благополучно пользовался не первый год. Еще и рекламировал другим ЯДиск. Взяли и без уведомления отключили... Я не буду ставить приложение Яндекса, оно кривое и мне не нравится. Давайте хотя бы для оплаченных rclone разблокируете? В противном случае сервис для меня становится бессмысленным, я не буду перетаскивать файлы в браузер и придется искать альтернативу.
Цитата:
Программа Rclone позволяет использовать Яндекс.Диск в качестве инфраструктурного компонента, а Яндекс.Диск - это персональный сервис, который не рассчитан на решение таких задач. Поэтому мы не поддерживаем работу связки Rclone - Яндекс.Диск.
Я попереписывался с саппортом и в итоге забрал деньги за Диск Про. Поддерживать rclone они не планируют.
Кто еще соберется уходить - имейте ввиду, что лучше сначала почистить все лишнее, они потом веб-доступ тупо блокируют. А с телефона удалять большое количество файлов еще то удовольствие. Да, скачать файлы тоже можно, но только на телефон, поскольку в веб доступа нет... И скорость в официальном приложении на телефоне подрезана... Мда, впечатлен я количеством рекламы в мобильном приложении, если Диск Про не куплен...

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.