В кои-то веки возникла необходимость достучаться снаружи до интерфейса домашней качалки на медиаплеере. К сожалению Web-интерфейс ввиду узости канала оказался недоступен. Живой остался только ssh-доступ сквозь рутер на C-200.
Вспомнив, что со штатным Transmission была утилитка, позволяющая работать с командной строки, я достаточно быстро ее освоил.
Лично у меня стоит Transmission 2.13 из комплекта LTU (заменяющий штатный Transmission 1.75), но подобным методом можно управлять и более свежими Transmission, поставленными отдельно через CSI.
transmission-remote
Лежит эта «прелесть» рядом с основным демоном Transmission (transmission-daemon) в папке /nmt/apps/bin
Что он умеет? Почти все, но без красивого GUI-интерфейса. transmission-remote, как и все остальные управлялки, взаимодействует с основным демоном по rpc.
Полная справка по командам transmission-remote выдается по ключику -h (или при запуске без параметров):
Transmission 1.75 (9117) http://www.transmissionbt.com/
A fast and easy BitTorrent client
Usage: transmission-remote [host] [options]
transmission-remote [port] [options]
transmission-remote [host:port] [options]
See the man page for detailed explanations and many examples.
Options:
-h --help Display this help page and exit
-a --add Add torrent files by filename or URL
-as --alt-speed Use the alternate Limits
-AS --no-alt-speed Don't use the alternate Limits
-asd --alt-speed-downlimit <speed> max alternate download speed (in KB/s)
-asu --alt-speed-uplimit <speed> max alternate upload speed (in KB/s)
-asc --alt-speed-scheduler Use the scheduled on/off times
-ASC --no-alt-speed-scheduler Don't use the scheduled on/off times
--alt-speed-time-begin <time> Time to start using the alt speed limits (in hhmm)
--alt-speed-time-end <time> Time to stop using the alt speed limits (in hhmm)
--alt-speed-days <days> Numbers for any/all days of the week - eg. "1-7"
-b --debug Print debugging information
-d --downlimit <speed> Set the maximum global download speed in KB/s
-D --no-downlimit Don't limit the global download speed
-er --encryption-required Encrypt all peer connections
-ep --encryption-preferred Prefer encrypted peer connections
-et --encryption-tolerated Prefer unencrypted peer connections
-f --files List the current torrent(s)' files
-g --get <files> Mark files for download
-G --no-get <files> Mark files for not downloading
-i --info Show the current torrent(s)' details
-j --syabas-settings Show the session's settings
-k --syabas-print-list List all torrents and print detailed information for NMT
-si --session-info Show the session's details
-st --session-stats Show the session's statistics
-l --list List all torrents
--move <path> Move current torrent's data to a new folder
--find <path> Tell Transmission where to find a torrent's data
-m --portmap Enable portmapping via NAT-PMP or UPnP
-M --no-portmap Disable portmapping
-n --auth <username:password> Set authentication info
-N --netrc <filename> Set authentication info from a .netrc file
-o --dht Enable distributed hash tables (DHT)
-O --no-dht Disable distributed hash tables (DHT)
-p --port <port> Port for incoming peers (Default: 51413)
-P --random-port Random port for incomping peers
-ph --priority-high <files> Set the files' priorities as high
-pn --priority-normal <files> Set the files' priorities as normal
-pl --priority-low <files> Set the files' priorities as low
-r --remove Remove the current torrent(s)
-pr --peers <max> Set the current torrent(s)' maximum number of peers each
-gpr --global-peers <max> Set the global maximum number of peers
--remove-and-delete Remove the current torrent(s) and delete local data
-sr --seedratio ratio Let the current torrent(s) seed until a specific ratio
-srd --seedratio-default Let the current torrent(s) use the global seedratio settings
-SR --no-seedratio Let the current torrent(s) seed regardless of ratio
-gsr --global-seedratio ratio All torrents, unless overridden by a per-torrent setting, should seed until a specific ratio
-GSR --no-global-seedratio All torrents, unless overridden by a per-torrent setting, should seed regardless of ratio
-s --start Start the current torrent(s)
-S --stop Stop the current torrent(s)
-t --torrent <torrent> Set the current torrent(s)
-u --uplimit <speed> Set the maximum global upload speed in KB/s
-U --no-uplimit Don't limit the global upload speed
-v --verify Verify the current torrent(s)
-V --version Show version number and exit
-w --download-dir <path> Set the default download folder
-x --pex Enable peer exchange (PEX)
-X --no-pex Disable peer exchange (PEX)
-pi --peer-info List the current torrent(s)' peers
Без указания в параметрах IP-адреса и порта хоста, на котором расположен демон, transmission-remote пытается подключиться к локальному хосту по известным ему портам.
Так как у меня версия демона 2.13 (LTU) и конфигурация соответствует штатной (порт 8077), я могу пропустить явное указание хоста и порта при подаче команд.
Например, для меня команды
и
равнозначны и выведут один и тот же результат:
Daemon version: 2.13 (11501)
RPC version: 11
RPC minimum version: 1
TRANSFER
Download directory: /Transcend/Download/Concert
Listenport: 50520
Portforwarding enabled: Yes
Peer exchange allowed: Yes
Encryption: preferred
LIMITS
Peer limit: 100
Upload speed limit: Unlimited (Disabled limit: 100 KB/s; Disabled turtle limit: 300 KB/s)
Download speed limit: Unlimited (Disabled limit: 1000 KB/s; Disabled turtle limit: 600 KB/s)
Мне потребовалось остановить один из качающихся торрентов, с тем чтобы быстрее доехала нужная мне закачка.
Полный список торрентов выдается по команде
Чтобы не увязнуть в большом списке, лучше ограничить вывод только тех файлов, которые в настоящий момент загружаются, то есть присутствует в статусе «Download». Для этого есть grep в конвейере обработки вывода:
ID Done Have ETA Up Down Ratio Status Name
45 89% 36.4 GB 8 days 0.0 6.0 0.02 Up & Down Солоxxxxxxx
61 45% 10.8 GB 1 days 0.0 94.0 0.00 Downloading Big.Sxxxxxxx
66 74% 12.9 GB 6 hrs 0.0 200.0 0.04 Downloading EV Fxxxxxxx
249 57% 7.0 GB 14 hrs 7.0 106.0 0.30 Up & Down Battxxxxxxx
Команды управления требуют указания ID торрента, который передается в ключике «-t». Мне нужно остановить закачку под номером 249. Ключ для стопа «-S»:
localhost:8077 responded: "success"
Проверю текущую картинку:
ID Done Have ETA Up Down Ratio Status Name
45 89% 36.4 GB 25 days 0.0 2.0 0.02 Up & Down Солоххххххх
61 45% 10.8 GB 1 days 0.0 133.0 0.00 Downloading Big.Sххххххх
66 74% 12.9 GB 5 hrs 0.0 260.0 0.04 Downloading EV Fххххххх
Все — нужный торрент остановлен.
Можно просмотреть пофайлово состав торрента и прогресс их закачки (ключ -f), например:
EV FIN (9 files):
# Done Priority Get Size Name
0: 100% Normal Yes 140.1 KB EV FIx/BDMV/ххх.clpi
1: 100% Normal Yes 690 bytes EV FIx/BDMV/ххх.mpls
2: 100% Normal Yes 290 bytes EV FIx/BDMV/ххх.bdmv
3: 100% Normal Yes 120 bytes EV FIx/BDMV/ххх.bdmv
4: 100% Normal Yes 140.1 KB EV FIx/BDMV/ххх.clpi
5: 100% Normal Yes 690 bytes EV FIx/BDMV/ххх.mpls
6: 92% Normal Yes 17.4 GB EV FIx/BDMV/ххх.m2ts
7: 100% Normal Yes 290 bytes EV FIx/BDMV/ххх.bdmv
8: 100% Normal Yes 120 bytes EV FIx/BDMV/ххх.bdmv
Можно получить детальную информацию по указанному торренту (ключ -i)
NAME
Id: 66
Name: EV Fx
Hash: ffffbdffff2fffafffb2fffdfff6ffffffffffff
TRANSFER
State: Downloading
Location: /Transcend/Download/Concert
Percent Done: 93.2%
ETA: 1 hour, 26 minutes
Download Speed: 238.0 KB/s
Upload Speed: 0.0 KB/s
Have: 16.2 GB (16.2 GB verified)
Total size: 17.4 GB (17.4 GB wanted)
Downloaded: 16.2 GB
Uploaded: 546.3 MB
Ratio: 0.03
Corrupt DL: 16.0 MB
Peers: connected to 29, uploading to 0, downloading from 29
HISTORY
Date added: Tue May 17 13:13:15 2011
Date started: Tue May 17 23:53:23 2011
Latest activity: Wed May 18 16:00:47 2011
TRACKER
ORIGINS
Date created: Mon May 16 22:18:44 2011
Public torrent: No
Creator: fffinfff
Piece Count: 4446
Piece Size: 4194304
PIECES
11110111 11111111 11111111 11101111 11111011 11111111 11111111 11111111
.... пропущена продолжительная битовая маска загруженных кусочков торрента.
Именно по ней другие WEB-управлялки рисуют красивую графическую
штрихованную полоску.
C помощью transmission-remote можно менять приоритет отдельно взятым файлам (ключики -ph -pn -pl с указанием ID файла). Можно менять (не на ходу, естественно, а сначала остановить) каталог загрузки для выбранного торрента (—move /путь куда двигать).
Конечно, версия transmission-remote (1.75) достаточно древняя и не позволяет управлять некоторыми новшествами (например, приоритет на уровне торрентов). Но для оперативного вмешательства в ход процесса это вполне подходящий инструмент.
18 мая 2011 г. в 21:34
Я обычно коннекчусь по SSH к роутеру с пробросом трансмишновского порта (ssh root@ -p -L 8077:c200:8077) и затем — коннекчусь к localhost:8077 браузером либо transmission-qt(оно умеет как локально стартовать качалку, так и коннектиться к удалённой сессии). В любом случае получаю одинаковый интерфейс со всеми плюшками Канал практически не грузит.
18 мая 2011 г. в 21:37
хм, не отобразился текст с угловыми скобками… там должно быть вот так: ssh root@router_ip -pport -L 8077:c200:8077
19 мая 2011 г. в 03:58
Коннект через браузер, как и остальные GUI, использует периодические обращения к RPC-порту Transmission. И чем чаще период обновления (в настройке клиента), тем больше загруз.
Я не скажу, что там дикий трафик, но в полевых условиях, например, когда узкий канал на стороне управляющего компа или обратный канал от Transmission забит на 100% отдачей, то нет ничего лучше старого доброго интерфейса командной строки.
19 мая 2011 г. в 08:48
Спасибо за статью. Полезная информация. Давно задумывался как управлять transmission при помощи ssh сессии.
28 сентября 2011 г. в 09:09
Здравствуйте.
Во-первых, большое спасибо Padavan’у за проделанную работу и за LTU. Я практически полный лох в никсах, но новый 3Tb HDD теперь на ext3 и работает (для перелива всего пришлось-таки ставить Убунту и цеплять HDD к компу напрямую, но первчиную разметку HDD сделал Дюной (у меня D1).
Вопросы (мини-версия пакета 0.4.6):
1. pure-ftpd не дает ни писать, ни удалять файлы. Только читать. FTP клиент ругает, что команда STOR вызывает ошибку (пробовал FileZilla и FAR2.0). Родной дюнин FTP-сервер работает без проблем. Чувствую, что что-то не доконфигурил, или по дефолту что-то не так с правами доступа.
2. Где smartmontools пишет лог? Слежу за температурой HDD и каждый раз для этого запускаю smartctl –a.
3. Как узнать, что transmission использует uTP? GUI всегда показывает, что uTP-галка снята (неважно какой GUI – ее встроенный для IE или сторонний). Если ставлю галку uTP, жму “Save”, снова захожу на ту же страницу – галка снята. В файле-конфиге transmission uTP включил, но так же не могу понять – работает uTP или нет.
4. Есть ли NFS-клиент под Windows XP, который поддерживает UTF-8 или как его настроить? Я поставил NFS-клиента из пакета утилит Unix Services for Windows (http://www.microsoft.com/download/en/details.aspx?id=274), примонтировал дюнову шару, файлы вижу, но имена – двойными кракозябрами (сразу видно, что юникод ). Ключ iocharset=utf8 у команды mount вызывает ошибку.