Резервное копирование на ЯндексДиск через приложение.

Из-за негласных изменений, довольно красивая схема резервного копирования по протоколу WebDAV в данный момент работает крайне плохо. Поэтому приходится перенастраивать на копирование через приложение. Ниже мануал по настройке.

1. Устанавливаем приложение ЯДиск.

Качаем с оф.сайта и устанавливаем.

2. Настраиваем ЯДиск.

2.1 Отключаем автоматическое обновление.

Т.к. ЯДиск устанавливается в папку, имя которой соответствует версии программы, нужно отключить автоматическое обновление или при каждом обновлении нужно будет переделывать службу.

2.2 Отключаем автоматический запуск при входе пользователя.

Чтобы не было косяков при синхронизации, должен быть запущен только один процесс ЯДиска. Идем в Файл -- Настройки -- Основные снимаем гелку запускать при входе в систему.

2.3 Настраиваем расположение папок для синхронизации.

Идем в Файл -- Настройки -- Основные -- Настроить расположение папок.

3. Настраиваем запуск ЯДиска в качестве службы.

В общем случае синхронизация должна работать вне зависимости от входа пользователя в систему, пожтому нужно запускать ЯДиск как службу.

3.1 Качаем программку nssm отсюда или с оф. сайта.

3.2 Копируем  программку в programm files или куда-нибудь, чтобы по запарке не удалить. служба будет запускаться через эту прогу.

3.3 Создаем службу YaDisk.

Выполняем команду
nssm install YaDisk

Дальше настраиваем новую службу

Вкладка Application
Path - Путь до исполняемого файла Ядиска.
Пример C:\Users\Администратор\AppData\Roaming\Yandex\YandexDisk2\3.1.18.3306\YandexDisk2.exe

Вкладка Details
Display Name -- YaDisk

Вкладка Log on as
логин и пароль пользователя от имени которого будет запускаться служба.

Нажимаем Install service.

3.4 Запускаем службу через оснастку службы (services.msc).

4. Настраиваем автоматическую очистку корзины Ядиска.

При удалении из папки ЯДиска файлы помещаются в корзину и продолжают занимать место. Для полного удаления нужно настроить автоматическую чистку корзины.

4.1 Создаем приложение cleantrash.

Заходим на https://oauth.yandex.ru/ под логином и паролем учетки для Ядиска.

Регистрируем новое приложение

Название приложения -- cleantrash
Платформы -- Web-сервисы
Callback URI #1: -- кликаем Подставить URL для разработки.
Доступы -- Яндекс.Диск REST API
ставим галки:
Доступ к информации о Диске
Доступ к папке приложения на Диске
Запись в любом месте на Диске
Чтение всего Диска

Нажимаем кнопку Создать, получаем ID и пароль.

4.2 Разрешаем приложению доступ и получаем токен.

Открываем ссылку
https://oauth.yandex.ru/authorize?response_type=token&display=popup&client_id=вашid
где вашid -- id полученный на предыдущем шаге.
Нажимаем кнопку разрешить, сохраняем полученный токен.

4.3 Запихиваем команду для очистки в скрипт или планировщик.

4.3.1 Скачиваем программку curl отсюда или с оф.сайта.
4.3.2 Копируем  программку в programm files или куда-нибудь, чтобы по запарке не удалить.
4.3.3 Добавляем в скрипт для резервного копирования строчку:
START /B <путь до curl.exe> -s -H "Authorization: OAuth <ваштокен>" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=
можно сделать отдельный скрипт для очистки корзины и кинуть в планировщик. Тест скрипта:


@echo off
START /B c:\Users\user\Downloads\curl\bin\curl.exe -s -H "Authorization: OAuth <ваштокен>" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=
exit


5. Пример скрипта для копирования вместе с удалением старых копий и очисткой корзины.

Скрипт архивирует файлы из списка указанного в C:\scripts\listfile.txt в .zip архив с датой и удаляет архивы старше 7 дней.


"C:\Program Files\7-Zip\7z.exe" a -t7z -ssw -mx7 -r0 D:\BackupYD\backup_%date%.zip @C:\scripts\listfile.txt
forfiles /p D:\BackupYD\ /m *.* /d -7 /c "cmd /c del /q /f @file"
START /B C:\scripts\curl.exe -s -H "Authorization: OAuth <ваштокен>" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=


 
1 1 1 1 1 1 1 1 1 1 Рейтинг 1.99 [116 Голоса (ов)]

Добавить комментарий