Последние статьи
- Твердотельный датчик направления и скорости ветра. Эксперимент
- iPhone на стене в качестве панели управления домом
- MegaD-16M-XT - подсветка выключателей и не только
- Переделка выключателей в кнопки и мини-обзор текущего рынка
- RadSens - модульный счетчик Гейгера с интерфейсом I2C
- "U" - значит универсальный. Обзор модуля MegaD-16U-XT
- SCD4x - современная альтернатива для измерения концентрации CO2
- HTU31D - новый датчик температуры и влажности с нагревательным элементом
- Измерение коэффициента пульсации ламп с помощью MegaD-2561
- Использование солнечных панелей в качестве датчика освещенности
- Согласование датчиков с выходом типа TTL со стандартными входами контроллера
- DPS368 - датчик атмосферного давления индустриального класса повышенной точности
- DS18B20 Waterpoof - импортзамещение
- TMP117 - высокоточный датчик температуры с интерфейсом I2C
- MegaD-16R-XT - расширитель на 16 релейных выходов
- MegaD-2561-RTC V3 - больше портов, зуммер и ИОН
Настройка BitTorrent-клиента с Web-интерфейсом на медиа-сервере
08/01/2011 23:07:39
Возможно, данная статья устарела.
Все новые статьи
Пожалуй, сегодня трудно себе представить домашний медиасервер без BitTorrent-клиента. Домашнее видео - это, конечно, хорошо, но...
Мой сервер с мультимедийным контентом работает под управлением Debian Linux, а значит нужен был клиент для Linux. Однако мне бы не подошел клиент с традиционным GUI. Так как сервер установлен в подвале дома, куда лишний раз бегать не хотелось, мне нужна была программа, управляемая удаленно, желательно, через Web-интерфейс. Таким образом я бы мог управлять клиентом через Интернет или локальную сеть. Такая программа обнаружилась в репозитории Debian под именем torrentflux.
Torrentflux - клиент, работающий совместно с Web-сервером Apache и MySQL-сервером. В качестве движка используется адаптированная версия BitTornado, написанная на языке python. Установка пакета в Debian не вызвала сложностей. Клиент оказался вполне работоспособным. Важно, что клиент может работать с разными пользователями. Все управление клиентом и его настройка производится только через Web-интерфейс. Вроде бы то, что надо, но есть два недостатка.
1. Torrentflux не умеет запускать и останавливать закачки по расписанию.
2. Torrentflux не сохраняет общую статистику upload торрента - информация доступна только для текущей сессии.
Первый пункт - самый важный. Мне нужен клиент, который бы мог автоматически запускать все закачки, скажем в 1:30 ночи и останавливать свою работу в 6:20. Днем сервер выполняет свои прямые обязанности и не загружает канал, а ночью качает и раздает - вполне логично.
Второй пункт необходим для оценки рейтинга и понимания того, какие закачки уже можно удалить. Сам torrentflux написан на PHP, поэтому я внес в него необходимые мне коррективы.
На скриншоте показаны изменения: кнопки Start/Stop All Torrents, а также общий объем отданного по каждому торренту.
Кнопки - это здорово, но нужно как-то нажать эти кнопки в условленный час. Для этого удобно использовать программу curl.
В cron я прописал следующее:
30 1 * * * curl -s 'http://192.168.0.251/torrentflux/index.php?startall=now&sec=123' 20 6 * * * curl -s 'http://192.168.0.251/torrentflux/index.php?stopall=now&sec=123'
Время, а также IP-адрес сервера нужно указать, естественно свои. Остановлюсь только на параметре sec. Дело в том, что в программе torrentflux используется авторизация пользователей. Нельзя просто вызывать нужный URL. С другой стороны в torrentflux используется не самая простая система авторизации с использованием сессий. Чтобы решить эту задачу я внес небольшие изменения в файл functions.php. Значение '123' является своего рода паролем, который задается в коде. Этот пароль работает только на запуск или остановку всех закачек и другие операции с ним недоступны. Не самое, наверное, правильное решение, но так как "админ" в домашней сети один, домашние пользователи не хакеры, а сам медиа-сервер от внешнего мира закрыт файрволом и авторизацией Apache - сгодится и такое.
Были исправлены следующие файлы: index.php, functions.php и добавлен новый файл savedetails.php
Скачать патч к torrentflux можно по torrentflux-patch.zip.
Необходимо распаковать архив и скопировать файлы в папку с установленным torrentflux. (/usr/share/torrentflux/www/ по умолчанию в Debian)
Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.
Добавить комментарий:
Сортировка комментариев: Последние сверху | Первые сверху
2011-01-17 20:24:52 | gdr
советую rtorrent + rutorrent (веб-морда к нему). Консольный (работает в screen-e), имеет свой планировщик, статистику ведет и пр.
2011-01-17 22:00:59 | Andrey_B
gdr, спасибо. TorrentFlux подкупил только тем, что все шло в комплекте, тогда как web-морду к rtorrent нужно было прикручивать.
Но выяснились некоторые недостатки TorrentFlux. Например, невозможно приостановить (поставить на паузу закачку) - всегда это процедура стоп/старт. И самое важное для меня то, что TorrentFlux не умеет на лету менять ограничения по скорости download/upload. Поменять эти ограничения можно для отдельных торрентов, но не для всего клиента в целом. Это не совсем удобно, когда в работе десятки торрентов.
2011-07-26 09:04:41 | friday
а можно еще добавить функцию добавления и запуска торрента автоматически - например делаем скрипт - который обнаруживает выход новой серии, скачивает файл и запускает закачку
2012-12-22 16:14:18 | Михаил
Для решения такой же задачи я использовал transmission-daemon , т.к. очень удачно обнаружилось что есть расширение-клиент для Chrome remote-transmission-plus что позволяет отправлять задачи на загрузку с рабочих станций в один клик. и по необходимости управлять через web интерфейс или выпадающее меню расширения в Chrome.