Автоматическая очистка корзины Yandex.Disk без участия человека

  • Tutorial

Озаботившись бэкапами на своем скромном сервере я столкнулся с очевидным дальнейшим шагом — а где все это добро хранить?


Выбора особо нет да и у меня есть халявный Яндекс Диск на котором со всеми бонусами у меня аж 63 Гб, грех не воспользоваться.


В принципе, задачу я решил, но как и многие другие пользователи обнаружил — место не резиновое и надо корзину периодически очищать, иначе место быстро заканчивается а, времени да и возможности постоянно лазить в веб интерфейс и чистить корзину нет. Непорядок, надо исправлять.


Давайте потратим минут 10-15 и на год забудем о проблеме, поехали.


Вводные данные на чем у меня все работает:


Ubuntu 18.04
Yandex.Disk консольный клиент для одноименного дистрибутива

  1. Зайдем под тем логином из по которого работает ваш ЯД по адресу https://oauth.yandex.ru/ и нажмем кнопочку Зарегистрировать новое приложение



  2. Заполняем поля как указано на скриншоте



  3. В пункте Доступы выберите Яндекс Диск REST API и поставьте галочки как на скриншоте



  4. Спускаемся в самый низ страницы и жмем кнопку Создать приложение



  5. В полученной странице есть все необходимые нам данные, обязательно сохраните их (PS мои реальные данные я удалил но сохранил вам на скрине для наглядности, у вас они будут другие)



  6. Получим токен, зайдем браузером по адресу https://oauth.yandex.ru/authorize?response_type=token&display=popup&client_id=ВАШid где в самом конце укажем ID полученный в шаге 5


  7. На этой странице жмем Разрешить



  8. На этой странице увидим выданный токен, обязательно сохраните его!



  9. Зайдем в консоль вашего сервера под рутом и создадим скрипт


    nano /root/yadisk.sh

    В котором пропишем следующие команды


    #!/bin/sh
    /usr/bin/curl -s -H "Authorization: OAuth ваш_токен" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=

    где на месте ваш_токен внесем данные из шага 8


  10. Сохраним скрипт и сделаем его исполняемым


    chmod 700 /root/yadisk.sh

  11. Дадим команду crontab -e
    в открывшемся окне напишем


    0 3 * * * /root/yadisk.sh > /dev/null 2>&1

    Сохраним файл, сервис крон автоматически примет эти данные и запустит в указанное время. В данном случае это будет происходить каждый день в 3 часа ночи каждый год.



Ну вот и все, я дольше писал статью и делал скриншоты чем вы все это сможете реализовать у себя :)
Маленький совет — я решил очищать корзину ДО того как будет запускаться следующий мой скрипт, который бэкапит базы данных моих сайтов, таким образом я могу быть чуть более спокоен что места на диске хватит для моих данных.


Если хотите убедиться что вы все сделали правильно то можете просто запустить эту команду в консоли


/usr/bin/curl -s -H "Authorization: OAuth ваш_токен" -X "DELETE" https://cloud-api.yandex.net/v1/disk/trash/resources/?path=

(не забудьте в эту строку внести ваш_токен)
и убедиться что корзина вашего аккаунта пуста.


На этом разрешите откланяться.

Комментарии 5

    +2
    Ой, это пересказ поискового запроса «yandex disk rest api очистка корзины»?
      0

      Я, к примеру, не задумывался над этим и просто тратил время на очистку. Копаться по инету в поисках решения или создавать своë — даже не думал. Принимал как должное, но теперь думаю, что раз выложили гайд с решением траблы за минуту, завтра займусь и избавлюсь от раздражающих меня всю дорогу работы с Я.диском действий

        0

        Отпишитесь пожалуйста потом здесь — помогло или нет, у меня вроде как неделю работает как часы, но я пока посматриваю периодически :)

        0
        Нет, это пересказ поискового запроса «yandex disk rest api очистка корзины», перемешанный с пересказом поискового запроса «что не стоит делать под root»
        +1

        rclone cleanup проще в разы

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое