Многие уже наверно делают бекапы на Яндекс Диск - бесплатное место ограничено 10 гигабайтами.
Ка правило, любые скрипты бекапа удаляют старые копии (затирают) и заливают новые. Но в Яндекс Диске они не удаляются, а перемещаются в корзину (и хранятся месяц), занятое дисковое пространство в корзине входит в ограничение в 10 гигабайт.
Поэтому быстро кончается место на Яндекс Диске и бекапы вследствие отсутствия места перестают делаться. Чистить руками постоянно корзину не вариант, можно реализовать автоматическую очистку корзины следующим образом:
1. Авторизуемся https://oauth.yandex.ru/ и создаем приложение:
Жмем кнопку: Создать приложение:
Название сервиса*: cleantrash (любое название);
Для какой платформы нужно приложение?: ставим галку Веб-сервисы и чуть ниже щелкаем на Подставить URL для разработки
в поле Callback URI #1: автоматом подставляется https://oauth.yandex.ru/verification_code;
Ниже выбираем Яндекс.Диск REST API: ставим 4 галки:
-Доступ к папке приложения на Диске
-Чтение всего Диска
-Запись в любом месте на Диске
-Доступ к информации о Диске
По желанию заполняем:
-Ссылка на сайт
-Email для связи
Жмем кнопку: Создать Приложение.
В итоге мы получим:
ClientID
Это идентификатор вашего приложения. Используйте его в запросах для получения OAuth-токена
Client secret
Секретный ключ, которым будет подписан jwt-токен с информацией о пользователе - на данном этапе он нас не интересует.
Нас интересует ClientID - копируем его себе.
2. Для получения OAuth-токена вызываем в браузере url
https://oauth.yandex.ru/authorize?response_type=token&display=popup&client_id=вашid
где вашid - это ClientID приложения, который мы сохранили себе ранее - например: niQK3uLWKytUILFpMyKPT4IePzlEXwhuQYmSk0qy , входим под вашей учеткой яндекс.
То есть нужно будет вызвать url в браузере с вашим ClientID приложения - пример url с ClientID приложения niQK3uLWKytUILFpMyKPT4IePzlEXwhuQYmSk0qy :
https://oauth.yandex.ru/authorize?response_type=token&display=popup&client_id=niQK3uLWKytUILFpMyKPT4IePzlEXwhuQYmSk0qy
Результатом вывода браузера будет ваш токен (OAuth-токен).
Сохраняем себе полученный OAuth-токен и используем его в ваших скриптах.
3. Настройка планировщика для linux, Mac OS:
Создаем sh скрипт и подставляем полученный ранее токен в sh скрипт - который будем запускать по крону.
nano /home/user/cleanya.sh
#!/bin/sh
/usr/bin/curl -s -H "Authorization: OAuth ваштокен" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=
где ваштокен - это токен который вы получили в яндексе - например: g6lCt1dULu8tbGN40axBH6hz4WNsohsyYIShw0uOEMn1iqOHqLXgy0HbOM
chmod 700 /home/user/cleanya.sh
Ставим в крон этот скрипт -во сколько и так часто, как вам нужно
0 9 * * * /home/user/cleanya.sh > /dev/null 2>&1
4. Настройка планировщика для windows 10:
Скачиваем утилиту curl для windows по ссылке https://curl.haxx.se/windows/ , распаковываем содержимое архива в папку C:\Users\user\Downloads\curl , где user это ваш пользователь windows, под которым вы работаете.
Создаем bat файл c:\Users\user\Downloads\curl\ya.bat со следующим содержимым:
@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
где ваштокен - токен который вы получили в яндексе - например: g6lCt1dULu8tbGN40axBH6hz4WNsohsyYIShw0uOEMn1iqOHqLXgy0HbOM
Для запуска bat файла в фоновом режиме (чтобы не выскакивало постоянно черное окно cmd), создаем vbs файл c:\Users\user\Downloads\curl\ya.vbs со следующим содержимым:
Set WshShell = CreateObject("WScript.Shell" )
WshShell.Run chr(34) & "c:\Users\user\Downloads\curl\ya.bat" & Chr(34), 0
Set WshShell = Nothing
проверяем - запускаем вручную ya.vbs двойным кликом мыши.
Создаем задание в планировщике windows 10:
- меню планировщика - создать простую задачу, имя - cleanya, далее - триггер (выбираем время запуска какое вам нужно), действие - запустить программу, далее - запуск программы (в поле программа или сценарий вводим wscript.exe , ниже, в поле Добавить аргументы - путь до vbs скрипта в кавычках)
"c:\Users\user\Downloads\curl\ya.vbs"
проверяем задание в планировщике - жмем правой кнопкой мыши - выполнить.
В итоге корзина Яндекс диска автоматически ежедневно очищается!