Mover archivos ya completados (es decir, no nuevos) en rtorrent


13

He estado usando rtorrent por un tiempo con un solo directorio. Ahora descubrí que era posible usar diferentes directorios e incluso mover las descargas completas a otra parte, así que de acuerdo con el wiki de rtorrent, edité mi .rtorrent.rc de la siguiente manera:

# 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="

Parece funcionar para nuevos torrents. Sin embargo, tengo un montón de archivos completos que ya descargué antes para dividir directorios, y para ellos no funciona: si elimino su archivo en el directorio de sesión, rtorrent verificará el hash pero no los moverá, y si moverlos yo solo rtorrent no los verá e intentará volver a descargarlos.

Entonces, ¿cómo puedo decirle a rtorrent que los mueva o que estén en otro directorio?

Gracias.

Respuestas:


14

Ok, acabo de resolver esto. Dentro de rtorrent puede abrir una línea de comando usando Ctrl+ X. Puede hacer muchas cosas desde allí (supongo que se trata de una gestión de torrentes básica), como imprimir cosas ( print=$variable=por ejemplo print=$d.get_directory=, ejecutar comandos ( execute=command) o configurar variables ( variable=newvalue).

Desde este mensaje, puede mover el torrente terminado a otra parte, PERO tenga en cuenta que no es necesario ni suficiente (ver más abajo). Por ejemplo, usando el ejemplo del archivo .rtorrent.rc dado en la pregunta original:

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

Sin embargo, este comando evitará que rtorrent continúe sembrando el torrent, por lo que no es suficiente. Para continuar sembrando, debe, aún desde este símbolo del sistema, establecer el directorio de descarga para este torrent en la nueva ubicación:

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

Finalmente, el executecomando no es necesario: puede mover el torrent de la manera que desee (es decir, fuera de rtorrent), siempre que configure el nuevo directorio como se explicó anteriormente.

Después de eso, puede ser necesario volver a abrir el torrent (si está marcado como [CERRADO]) usando Ctrl+ R.


2
El orden correcto es PRIMERO configurar el nuevo directorio, luego moverlo, por cierto. Y puede agregar un comando abreviado a través de "method.insert", que realiza los dos pasos anteriores.
piroscopio

@pyroscope ¿por qué el directorio set primero es "correcto"? Me parece que querrá esperar para ver si su mvéxito tiene éxito antes de actualizar el directorio.
g33kz0r

2
No importa, respondí mi propia pregunta: <Fault -503: 'Cannot change the directory of an open download atter the files have been moved.'>
g33kz0r

0

Si no eres alérgico a los enlaces simbólicos, una forma es rtmv .


Para este caso en particular, encuentro mi solución más limpia, pero hay comandos bastante interesantes en su enlace. Gracias.
Skippy le Grand Gourou

0

como script bash:

editar, cuando mv -u $old $newfalla, entonces todo el comando falla.
Terminé dejando rTorrent para 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.