Переместить уже (то есть не новые) завершенные файлы в rtorrent


13

Я использовал rtorrent некоторое время с одним каталогом. Теперь я понял, что можно использовать разные каталоги и даже перемещать завершенные загрузки в другое место, поэтому в соответствии с вики rtorrent я отредактировал свой .rtorrent.rc следующим образом:

# Download directory
directory = /Medias/torrents/

# Watching directories
schedule = watch_directory_1,5,60,"load_start=/path/to/dl/dir1/*.torrent,d.set_custom1=/path/to/done/dir1"
schedule = watch_directory_2,5,60,"load_start=/path/to/dl/dir2/*.torrent,d.set_custom1=/path/to/done/dir2"

# On completion, move the torrent to the directory from custom1.
system.method.set_key = event.download.finished,move_complete,"d.set_directory=$d.get_custom1= ;execute=mv,-u,$d.get_base_path=,$d.get_custom1="

Кажется, работает для новых торрентов. Однако у меня есть несколько готовых файлов, которые я уже скачал ранее, чтобы разделить каталоги, и для них это не работает: если я удаляю их файл в каталоге сеанса, rtorrent проверит хеш, но не переместит их, и если я переместить их самому, рторрент не увидит их и попытается загрузить их заново.

Так как я могу сказать rtorrent, что нужно переместить их или что они находятся в другом каталоге?

Благодарю.

Ответы:


14

Хорошо, только что понял это. В rtorrent вы можете открыть командную строку, используя Ctrl+ X. Оттуда вы можете сделать много вещей (я полагаю, что это базовое управление rtorrent), таких как печать вещей ( print=$variable=например print=$d.get_directory=, выполнение команд ( execute=command) или установка переменных ( variable=newvalue).

Из этой подсказки вы можете переместить готовый торрент в другое место, НО обратите внимание, что он не является ни необходимым, ни достаточным (см. Ниже). Например, используя пример из файла .rtorrent.rc, приведенный в исходном вопросе:

execute=mv,-u,$d.get_base_path=,$d.get_custom1=

Тем не менее, эта команда будет препятствовать тому, чтобы рторрент продолжал посеять торрент, поэтому этого недостаточно. Чтобы продолжить заполнение, вы все еще должны из этой командной строки установить каталог загрузки для этого торрента в новое место:

d.set_directory=/path/to/new/directory/

Наконец, executeкоманда не обязательна: вы можете перемещать торрент так, как вам нужно (то есть вне rtorrent), если вы устанавливаете новый каталог, как описано выше.

После этого может потребоваться повторно открыть торрент (если он помечен как [ЗАКРЫТО]) с помощью Ctrl+ R.


2
Правильный порядок: сначала установите новый каталог, затем переместите его, кстати. И вы можете добавить сокращенную команду через "method.insert", который выполняет оба вышеуказанных шага.
пироскоп

@pyroscope, почему установленный каталог сначала «правильный»? Мне кажется, что вы хотели бы подождать, чтобы увидеть, если ваш mvуспешно, прежде чем обновлять каталог.
g33kz0r

2
Неважно, ответил на мой собственный вопрос: <Fault -503: 'Cannot change the directory of an open download atter the files have been moved.'>
g33kz0r

0

Если у вас нет аллергии на символические ссылки , одним из способов является rtmv .


Для этого конкретного случая я нахожу свое решение чище, но в вашей ссылке есть довольно интересные команды. Благодарю.
Скиппи ле Гран Гуру

0

как скрипт bash:

редактировать, когда происходит mv -u $old $newсбой, то вся команда не выполняется.
я закончил тем, что оставил rTorrent для qBitTorrent.

#!/bin/bash
#
# move files in rTorrent
# with rtxmlrpc from pyrocore
#
# 1. select all torrents from view $view
# 2. print old d.base_path
# 3. set new d.directory
#    torrent is closed
#    d.base_path is still old d.base_path
# 4. move old files to new dir
# 5. open torrent
#    d.base_path is set to new path
# 6. save output to text file

view='complete'
dest="/home/rtorrent/$view/"

# escape double quotes
dest=$(echo "$dest" | sed 's/"/\\"/g')

rtxmlrpc d.multicall2 '' "$view" \
  'd.base_path=' \
  "d.directory.set=\"$dest\"" \
  "execute=mv,-u,(d.base_path),\"$dest\"" \
  'd.open=' \
| tee rtxmlrpc.$(date +%s).txt
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.