在rtorrent中移动已完成的文件(即不是新的)


13

我已经在单个目录下使用rtorrent一段时间了。现在我发现可以使用不同的目录,甚至可以将已完成的下载移动到其他位置,因此根据rtorrent Wiki,我对.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将看不到它们,并将尝试重新下载它们。

那么,如何告诉rtorrent将其移动或将其放在另一个目录中?

谢谢。

Answers:


14

好的,只是想通了。在rtorrent中,您可以使用Ctrl+ 打开命令行X。您可以从那里做很多事情(我想这是基本的rtorrent管理),例如打印事情(print=$variable=例如print=$d.get_directory=),执行命令(execute=command)或设置变量(variable=newvalue)。

在此提示下,您可以将完成的torrent移到其他位置,但请注意,这既没有必要也不充分(请参阅下文)。例如,使用原始问题中给出的.rtorrent.rc文件中的示例:

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

但是,此命令将阻止rtorrent继续为torrent注入种子,因此这是不够的。为了继续播种,您仍然应该在此命令提示符下,将该torrent的下载目录设置为新位置:

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

最后,该execute命令不是必需的:您可以按照想要的方式(即在rtorrent外部)移动torrent,只要如上所述设置新目录即可。

之后,可能需要使用Ctrl+ 重新打开torrent(如果标记为[CLOSED])R


2
正确的顺序是首先设置新目录,然后移动它,顺便说一句。您可以通过“ method.insert”添加一个简写命令,该命令可以完成上述两个步骤。
pyroscope

@pyroscope为什么首先将目录设置为“正确”?在我看来,您希望mv在更新目录之前先等待自己是否成功。
g33kz0r

2
没关系,回答了我自己的问题: <Fault -503: 'Cannot change the directory of an open download atter the files have been moved.'>
g33kz0r 2013年


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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.