При создании резервного копирования с использованием Яндекс Диск, я столкнулся с задачей по автоматической очистке корзины Яндекс Диска. Как оказалось, у Яндекс Диска нет настраиваемых механизмов автоматической очистки корзины.
На мое счастье у используемой мною программы Rclone оказалась эта полезная команда cleanup для очистки корзины у подключенного облака.
Ниже привожу скрипт, который я использую для автоматической очистки корзины в Яндекс диск.
– Список программ используемый для резервного копирования на яндекс диск, с анализом успешности выполнения процедуры копирования и уведомлением на email:
- CMail – программа для отправки email из командной строки windows. Ссылка – https://vicnot.ru/2023/12/13/cmail-cmd-email/
- RClone – программа для взаимодействия с широким писком облачных сервисов. Ссылка – https://vicnot.ru/2023/12/13/rclone-sync-cmd-wondw/
Создание файла bat/cmd.
При создании исполняемого файла, важно сделать его в кодировке соответствующей вашей системе, в моем случае это кодировка OEM 866. Для меня проще создавать файл в командной строке выполнив
echo REM # Скрипт > scrypt.bat

таким образом мы получим файл в кодировке вашей системы.
Далее, помещаем в созданный нами файл следующий код:
REM # Скрипт очитки корзины Яндекс Диска
@ECHO OFF
REM # Для процесса синхронизации применяются программы:
REM # cmail - https://www.inveigle.net/cmail/download
REM # rclone - https://rclone.org/downloads/
REM # Внимание!!! Для корректного отображения символов в почтовых сообщениях, кодировка файла-скрипта должна быть OEM 866
REM # Блок настройки времени для файла логов
SET hr=%time:~0,2%
IF "%hr:~0,1%" equ " " SET hr=0%hr:~1,1%
SET DATETIMEF=%date:~-4,4%_%date:~-7,2%_%date:~-10,2%__%hr%_%time:~3,2%_%time:~6,2%
REM # Блок настройки почты
REM # указываем расположение файла почтовой программы
SET CMAIL_PATH="C:\Program Files\cmail\cmail.exe"
REM # указываем имя, пароль и почту отправителя
SET MAIL_SENDER=электронная почта@yandex.ru
SET USER_SENDER_NAME=имя отправителя
SET USER_PASS=пароль для приложений созданный в яндекс
REM # указываем smtp адрес почты отправителя
SET MAIL_SMTP_ADDRESS=smtp.yandex.ru
REM # указываем тип защиты SSL почты отправителя
REM # SSL/TLS (STARTTLS): -starttls
REM # SSL/TLS (SMTPS): -secureport
SET MAIL_SMTP_AUTHENTICATION=-starttls
REM # указываем почту получателя
SET MAIL_RECEPIENT=почта получателя@yandex.ru
REM # Блок настройки программы Rclone
REM # Указываем расположение файла rclone.conf (по умолчанию, находится по этому пути, но его можно переместить)
SET RCLONE_CFG_PATH="C:\Users\"Пользователь"\AppData\Roaming\rclone\rclone.conf"
REM # Указываем расположение программы синхронизации rclone.exe
SET RCLONE_EXE_PATH="C:\Program Files\rclone\rclone.exe"
REM # указываем расположение файла log и присваиваем имя состоящее из даты и времени
SET RCLONE_LOG_FILE="D:\LogFiles\rclone_log\logClearYandexTresh-%DATETIMEF%.log"
REM # --stats-one-line (DEBUG INFO NOTICE ERROR) указываем глубину логирования
SET RCLONE_OPT_PRM=--log-file=%RCLONE_LOG_FILE% --log-level INFO --progress
REM # --include *.{vbk} --exclude *.{vib,vbm,bco} исключения при необходимости
SET RCLONE_OPT_SEC=
REM # Устанавливаем скоростные ограничения по времени --bwlimit "06:00,1M 18:00,1M 20:00,off"
SET RCLONE_OPT_BWL=--bwlimit "06:00,1M 18:00,1M 20:00,off"
REM # Собираем команду синхронизации, в одну целую строку
SET RCLONE_OPTIONS=--config=%RCLONE_CFG_PATH% %RCLONE_OPT_PRM% %RCLONE_OPT_SEC% %RCLONE_OPT_BWL%
SETLOCAL
REM # выполняем очиску
START /B %RCLONE_EXE_PATH% %RCLONE_OPTIONS% cleanup УчетнаяЗапись@yandex.ru:
REM # в чистом виде команда выглядит так START /B "C:\Program Files\rclone\rclone.exe" --config="C:\Users\"Пользователь"\AppData\Roaming\rclone\rclone.conf" --log-level INFO --log-file=D:\logs\logClearYandexTresh\logClearYandexTresh-%DATETIMEF%.log cleanup УчетнаяЗапись@yandex.ru:
REM # выполняем отправку уведомления
%CMAIL_PATH% -host:%USER_SENDER_NAME%:%USER_PASS%@%MAIL_SMTP_ADDRESS% %MAIL_SMTP_AUTHENTICATION% -to:%MAIL_RECEPIENT% -from:%MAIL_SENDER% "-subject:Очистка яндекс диска, выполнена!" "-body:Очистка яндекс диска, выполнена!" "-a:D:\logs\logClearYandexTresh\logClearYandexTresh-%DATETIMEF%.log"
ENDLOCAL
EXIT
Ссылка на файл в формате UTF – https://github.com/victor-b81/Scripts/blob/main/ClearYandexTresh.bat
Напомню, что файл нужно сохранить в кодировке системы UTF/866/1251.
Далее помещаем выполнение данного скрипта в планировщик задач.
