Синхронизация репо через yandex-disk
Цель:
---
Избавиться от тормозов при подключении через WebDav. Настроить синхронизацию папки REPO (корень репозитория), находящейся на Яндекс.Диск-е и отзеркалить её на комп, с которого будет производиться обновление/изменение репозитория.
После настройки синхронизации все изменения в папке REPO на Яндекс.Диск-е и на компе в ~/root/Yandex.Disk/REPO будут зеркально повторять друг-друга: изменяем на Яндекс.Диске - автоматически изменяется на компе, изменяем на компе - меняется на Яндекс.Диске.
Важно!
---
1. Нужно удостовериться, что на диске компьютера достаточно места для зеркалирования папки REPO
2. Перед внесением изменений на компе (добавление/удаление пакетов/переиндексация), синхронизация должна быть запущена
3. Нужно убедиться, что синхронизация на момент внесения изменений на компе = 100%
Настройка синхронизации репозитория:
---
Чтобы при запуске синхронизации на клиенте он не тянул на комп всё содержимое Яндекс.Диска, а только нужную папку REPO, нужно сделать реорганизацию содержимого Яндекс.Диска. Через браузер создаём на нём папку, например OTHER и перемещаем в неё всё, кроме папки REPO. Это позволит запускать демон yandex-disk с короткой опцией исключения папок из синхронизации (--exclude-dirs=OTHER).
Скачиваем и ставим клиент yandex-disk:
rpm -Uvh ./yandex-disk-latest.x86_64.rpm
Настраиваем: yandex-disk setup
Отвечаем, есть ли у нас прокси, вводим данные для подключения к облаку Яндекс, автозапуск не включаем, контролируем вручную и запускаем по необходимости. После ответа на все вопросы setup-а, yandex-disk автоматически запускает ПОЛНУЮ СИНХРОНИЗАЦИЮ.
Останавливаем его: yandex.disk stop
И перезапускаем с параметром исключения папки OTHER: yandex-disk start --exclude-dirs=OTHER
Просмотреть статус синхронизации: yandex-disk status
#Идёт процесс синхронизации
Статус синхронизации: 1.12 GB/ 1.17 GB (95 %)
Статус ядра синхронизации: синхронизация
Путь к папке Яндекс.Диска: '/root/Yandex.Disk'
Всего: 15 GB
Занято: 7.33 GB
Свободно: 7.67 GB
Максимальный размер файла: 50 GB
Размер корзины: 0 B
#Синхронизация завершена
Статус ядра синхронизации: ожидание команды
Путь к папке Яндекс.Диска: '/root/Yandex.Disk'
Всего: 15 GB
Занято: 7.33 GB
Свободно: 7.67 GB
Максимальный размер файла: 50 GB
Размер корзины: 0 B
Примечание:
---
Если одновременно открыть Яндекс.Диск в браузере и запустить, допустим, переиндексацию любой ветки репо на компе, в браузере всплывают оповещения о производимых действиях: что меняется/замещается/удаляется. Прикольно. ))
Я делаю всё под root-ом (su) на виртуалке. Линуксоидам, видимо, нужно делать это под обычным юзером. Однако, я не уверен, что при этом не возникнет каких-нибудь проблем с правами на файлы или ещё какая бяка. Метод не опробован...
Дополнительно, можно прописать в ~/.config/yandex-disk/config.cfg
#exclude-dirs="exclude/dir1,exclude/dir2,path/to/another/exclude/dir"
и поставить клиент в автозапуск, но опять же, что будет, если какой-либо файл в профиле был случайно удалён/переименован/замещён. Как поведёт себя клиент при перезагрузке машины, находясь в автостарте. Тут тоже непонятки. Лучше всё держать под ручным контролем (субъективно). Метод не опробован...
Только что переиндексировал ветку i586. В процессе синхронизации он отправил в корзину старые файлы индексов, заместил их новыми. На компе сделал urpmi.update -a и установил пару пакетов для эксперимента. Полёт нормальный.
Результат:
---
Скорость работы с облаком теперь очень хорошая. Посмотрим, на сколько это надёжно. Главное - следить за статусом синхронизации: yandex-disk status.