Transmission как удалить
Перейти к содержимому

Transmission как удалить

  • автор:

Transmission — удаление *.part при удалении торрента из раздачи

Потыкавшись с Deluge, решил остановиться на Transmission с виндовым GUI, ибо управляться он будет в принципе с него. Так вот, я знал что при выборочной закачке могут качаться части из соседних файлов, но вот в transmission есть две загвоздочки, которые я хотел бы решить (хотя бы одну)

1. Если уходишь с раздачи, удаляешь торрент (просто торрент, без файлов), очень бы хотелось что бы недокаченные *.part удалялись в этой раздачи?

2. Качаешь например раздачу где 3 фильма в HD да и еще какие нибудь ремуксы, ну к примеру 3 файла по 30 гигов, в нужен тебе один, так он из соседнего файла выкачает 2-5 мб, но на диске создаст part этого файла во весь его размер! Просто так в пустоту 30 гб! Можно где то поменять настройку, что бы клиент не создавал part на весь размер файла, из которого тянется часть?

Меня в принципе устраивает любое из доступных решений. Да, я знаю что можно наваять скрипт который по крону будет удалять эти part, но если раздача идет, клиент будет его обратно восстанавливать и докачивать! Тут нужно удалять именно part из раздачи. Если можно пойти по второму пути, то тут уже можно сделать раз в месяц запуск скрипта по удалению part, какие восстановить — не страшно, у в следующем месяце удалятся.

Как удалить из списка завершенные торренты в transmission : Операционные системы и программное обеспечение

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

#!/bin/bash TCMD="transmission-remote 192.168.10.70:10008 --auth=user:passwd" LIST=`$TCMD -l | grep -Eo '^ *([0-9]+)'` for TORRENTID in $LIST do COMPLETED=`$TCMD -t $TORRENTID -i | grep "Percent Done: 100%"` STATUS=`$TCMD -t $TORRENTID -i | grep "State: Stopped\|Finished"` $TCMD -t $TORRENTID -i | grep "Name: " | sed -e "s/ Name: //" if [ "$COMPLETED" != "" ] && [ "$STATUS" != "" ]; then echo "Completed." $TCMD -t $TORRENTID -r else echo "Is not completed. Ignoring." fi done

Пускаю раз в сутки. В TCMD надо запихнуть авторизацию и прочее, если требуется.

Как решить проблемы с Transmission и Samba?

Имеется сервер с установленным на него Transmission-daemon который качает файлы с umask: 2 (каталоги 775, файлы 664), доступ к скачанным файлам идет через Samba, пользователь которого добавлен в группу debian-transmission.
Но возникает проблема в следующем:
Если transmission`ом был скачан файл одним файлом
.. file.avi
то этот файл потом без проблем удаляется.
Eсли же скачанное находилось в папке,
.. folder
.. folder/file.avi
То ни саму папку, ни файл в этой папке, невозможно удалить через samb`у.
Как решить данную проблему?

  • Вопрос задан более трёх лет назад
  • 639 просмотров

Удаление torrent-файлов из Transmission при удалении самих файлов внешними силами, например, через Plex

Plex

Постепенно перевожу свою, разбросанную между локациями, мультимедийную среду в более автоматизированный вид. В качестве сервера мультимедии я использую Plex. Plex-сервер у меня установлен в двух локациях и каждый работает независимо от другого, но под одним и тем же эккаунтом (обычным, не Premium). Данные, а именно файлы, синхронизуются между серверами посредством Resilio. А вот с просмотрами дела обстоят не так просто. Для того, чтобы можно было начать смотреть, ну, например, фильм на даче, а потом продолжить его смотреть в городе на кухонном телевизоре, необходимо как-то сообщить другому Plex-северу, мол, там вот посмотрели только до этого момента и следует тут начать с него же. Провернуть этот фокус можно несколькими путями:

  1. Через платную подписку Plex. Тут и файлы будут синхронизироваться и прочие полезности. Но платить 5 баксов за простую синхронизацию кажется не самой разумной затеей.
  2. Через механизм Webhook-ов. Plex позиционирует этот механизм как способ вмешиваться в домашнюю автоматизацию, например, приглушать свет в помещении если начинается трансляция в Plex. Но вебхуки можно применять и для многих других целей, например, для синхронизации через многочисленные интернет-сервисы по синхронизации просмотра видео-контента. Я смог насчитать, особо не разыскивая, целых три подобных сервиса. Но. Но, вебхуки доступны только на платной подписке.

Хорошо, что мир не без добрых людей и Jacob Gillespie придумал наипростейший Python скрипт с лаконичным названием Plex-Sync, выполняющий операцию по синхронизации между библиотеками Plex-серверов. Настройка скрипта примитивная, дальше он добавляется в планировщик и «плексы» синхронизируются по просмотренному. И теперь можно начать просмотр в одном месте, а закончиться его уже другом. Удобно.

Удобно, но не совсем. Plex удобно использовать в качестве медиа-сервера для скачиваемого посредством Torrent контента. Хочу сразу заметить, что Torrent != пиратский контент, поэтому никакой крамолы. На моих серверах за скачку отвечает Transmission. Старый как окаменелые отходы саблезубых млекопитающих, тем не менее, он работает отлично. Но при большом количестве torrent-закачек начинаешь путать, какой контент ты только что посмотрел через Plex и какой файл в Transmission следует удалить, дабы не занималось более место.

Через Plex можно удалять файлы и это настолько здорово, что может показаться, что наступила золотая эра, но подобная функция по удалению есть далеко, далеко не в каждом проигрывателе. Тем не менее, удобно удаляя файлы в Plex, необходимо что-то делать с Torrent-файлами в Transmission. Ведь они там копятся и с течением времени есть риск полного захламления Torrent-клиента. На выручку очумелым ручкам пришел OlegON изобразивший Bash скрипт на удаление скаченных torrent-ов в Transmission.

Немного модифицировав скрипт под цели удаления torrent-файлов при удалении скаченных файлов я получил нечто следующее:

#!/bin/bash TCMD="transmission-remote 192.168.0.19:9091 --auth=user:pass" LIST=$TCMD -l | grep -Eo '^ *([0-9]+)' for TORRENTID in $LIST do VERIFY=$TCMD -t $TORRENTID -v FAILED=$TCMD -t $TORRENTID -i | grep "Error: No data found!" if [ "$FAILED" != "" ] then $TCMD -t $TORRENTID -i | grep "Name: " | sed -e "s/ Name: //" echo "FILE IS DELETED" $TCMD -t $TORRENTID -rad echo "Torrent-FILE IS DELETED" fi done

В основе скрипта лежит transmission-remote, сервис, обеспечивающий подключение к Transmission через методы вызова удаленного вызова (RPC, если кто не понял). Соответственно этот RPC должен быть включен в настройках Transmission, заданы пользователь для доступа и пароль (собственно, они указываются во второй строчке скрипта). Хотя, если у вас нет никакой аутентификации или же авторизация происходит посредством разрешенных IP-адресов, то можно обойтись и без login/password.

Третьей строчкой идет получение списка идентификаторов активных torrent-ов в Transmission (параметр -l). Затем происходит проверка, верификация, каждого из активных torrent-ов (команда -v). Верификация означает полную проверку и перехеширование скаченного добра и может занимать существенное время, особенно на слабых машинах. Поэтому скрипт не стоит запускать слишком часто, а лучше запускать его раз в сутки, глубокой ночью.

После верификации, torrent-ы, в которых отсутствуют файлы (мы их удалили в Plex) помечаются как сбойные и при следующем вызове transmission-remote в скрипте (уже с командой -i) на экран будет выводиться в том числе и строчка с сообщением об этой ошибке. Вот именно эта строчка и ловится. И если она поймана, то происходит удаление torrent-а (тут возможно два варианта, с командой -r, тогда удаляется только torrent-файл или с -rad, тогда удаляется все, что было скачано в рамках обработки это конкретного torrent-а. Я предпочитаю -rad, так как далеко не всегда в раздачах бывают только просто файлы, иногда туда добавляется дополнительный контент, например, субтитры или фильмы о фильмах. И они из Plex не удаляются.

Не забываем про установку атрибута x для обозначения исполняемого файла (скрипта), а при указании скрипта в cron-е, лучше сразу прописать полный путь до Bash.

  1. Plex
  2. Plex-Sync
  3. Оригинальный скрипт от OlegON

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *