This shows you the differences between two versions of the page.
rtorrent [2009/09/19 21:36] k2patel |
rtorrent [2020/08/10 02:35] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Rtorrent - Best torrent client ====== | ||
- | ==== Quick Reference ==== | ||
- | * Control-q : closes rTorrent, done twice makes the program shutdown without waiting to send stopping information to the trackers. | ||
- | * Left arrow : returns to the previous screen. | ||
- | * Right arrow : goes to the next screen. | ||
- | * a|s|d : increase global upload throttle about 1|5|50 KB/s | ||
- | * A|S|D : increase global download throttle about 1|5|50 KB/s | ||
- | * z|x|c : decrease global upload throttle about 1|5|50 KB/s | ||
- | * Z|X|C : decrease global download throttle about 1|5|50 KB/s | ||
- | * Control-S : starts download | ||
- | * Control-D : stops an active download, removes a stopped download. | ||
- | * Control-K : Close a torrent and its files. | ||
- | * Control-E : Set the 'create/resize queued' flags on all files in a torrent. This is necessary if the underlying files in a torrent have been deleted or truncates, and thus rtorrent much recreate them. | ||
- | * Control-R : Initiate hash check of torrent. | ||
- | * Control-O : Change the destination directory of the download. The torrent must be closed. | ||
- | * Control-X : Call commands or change settings. | ||
- | * + or - : changes the download priority of selected torrent. | ||
- | * Backspace : adds the specified .torrent. After pressing this button write full path or URL of .torrent file. You can use Tab and other tricks from bash. | ||
- | |||
- | Main View Keys | ||
- | |||
- | === Peer list View Keys === | ||
- | |||
- | Use Arrow Key to navigate on related torrent. | ||
- | | ||
- | * * : Snub peer (stop uploading to this peer) | ||
- | * k : Kick peer (disconnect from peer) | ||
- | * B : Ban peer (No unbanning is possible.) 0.8.4+ | ||
- | |||
- | === Tracker list View Keys === | ||
- | |||
- | * left : Switch to view selection | ||
- | * * : Enable/disable tracker | ||
- | * space : Rotate trackers in a group | ||
- | |||
- | ==== Stop torrents after reaching a specified upload ratio ==== | ||
- | |||
- | stop_on_ratio = min_ratio,min_upload,max_ratio | ||
- | |||
- | <code bash> | ||
- | schedule = ratio,60,60,"stop_on_ratio=200,50M,300" | ||
- | </code> | ||
- | |||
- | The "stop_on_ratio" command can be scheduled to stop torrents that have reached a specified upload ratio. \\ | ||
- | The above example will stop a torrent once it has uploaded 200% of the torrent size, \\ | ||
- | unless less than 50MB has been uploaded and the ratio is below 300%. | ||
- | |||
- | Use shift-I to make a torrent ignore this and other commands. | ||
- | |||
- | === The ratio handling has been updated in rtorrent 0.8.4. === | ||
- | == The basics == | ||
- | |||
- | # Default group for ratio handling. | ||
- | <code bash> | ||
- | group.seeding.view | ||
- | group.seeding.ratio.command | ||
- | group.seeding.ratio.disable | ||
- | group.seeding.ratio.enable | ||
- | group.seeding.ratio.max | ||
- | group.seeding.ratio.max.set | ||
- | group.seeding.ratio.min | ||
- | group.seeding.ratio.min.set | ||
- | group.seeding.ratio.upload | ||
- | group.seeding.ratio.upload.set | ||
- | </code> | ||
- | |||
- | # The above commands can be called through: | ||
- | <code bash> | ||
- | ratio.disable | ||
- | ratio.enable | ||
- | ratio.max | ||
- | ratio.max.set | ||
- | ratio.min | ||
- | ratio.min.set | ||
- | ratio.upload | ||
- | ratio.upload.set | ||
- | </code> | ||
- | |||
- | The 'group.seeding.view' variable points to the 'seeding' view, which contains all seeding downloads, \\ | ||
- | and the default 'ratio.command' closes the download. To enabled or disable the ratio handling for the group, \\ | ||
- | call the 'enable' and 'disable' commands which automatically adds it to the scheduler. | ||
- | |||
- | Use the 'max', 'min' and 'upload' variables as in the old version. | ||
- | |||
- | # Enable the default ratio group. | ||
- | <code bash> | ||
- | ratio.enable= | ||
- | </code> | ||
- | |||
- | # Change the limits, the defaults should be sufficient. | ||
- | <code bash> | ||
- | ratio.min.set=100 | ||
- | ratio.max.set=300 | ||
- | ratio.upload.set=20M | ||
- | </code> | ||
- | |||
- | # Changing the command triggered when the ratio is reached. | ||
- | <code bash> | ||
- | system.method.set = group.seeding.ratio.command, d.close=, d.erase= | ||
- | </code> | ||
- | |||
- | == Ratio groups == | ||
- | |||
- | If you wish to specify different ratio's for different watch directories, do the following: | ||
- | |||
- | Add new views. You may find out what downloads they contain through\\ | ||
- | 'ui.current_view.set=group_1' command or XMLRPC calls. | ||
- | <code bash> | ||
- | view_add = view_group_1 | ||
- | </code> | ||
- | |||
- | # Make the views persist across sessions. | ||
- | <code bash> | ||
- | view.persistent = view_group_1 | ||
- | </code> | ||
- | |||
- | # Create new groups, 'group.insert = <name>, <view>'. | ||
- | <code bash> | ||
- | group.insert = group_1, view_group_1 | ||
- | |||
- | group.group_1.ratio.enable= | ||
- | group.group_1.ratio.min.set=100 | ||
- | group.group_1.ratio.max.set=300 | ||
- | group.group_1.ratio.upload.set=20M | ||
- | </code> | ||
- | |||
- | Optionally you may create a persistent view group directly. Note\\ | ||
- | that the view name is the same as the group name. | ||
- | <code bash> | ||
- | group.insert_persistent_view = group_2 | ||
- | |||
- | group.group_2.ratio.enable= | ||
- | group.group_2.ratio.min.set=300 | ||
- | group.group_2.ratio.max.set=0 | ||
- | </code> | ||
- | |||
- | Downloads need to be inserted into the view with the 'view.set_visible'\\ | ||
- | command. Note that extra parameters to 'load' are commands called\\ | ||
- | with the newly created download as the target. | ||
- | <code bash> | ||
- | schedule = watch_directory_1,5,10,"load_start_verbose=foo_1/*.torrent, view.set_visible=view_group_1" | ||
- | schedule = watch_directory_2,5,10,"load_start_verbose=foo_2/*.torrent, view.set_visible=group_2" | ||
- | </code> | ||
- | |||
- | ==== Scheduling download rate ==== | ||
- | |||
- | Every day "throttle_1" gets triggered at 01:00 and sets the download rate to unlimited,\\ | ||
- | while "throttle_2" sets it to 25kb at 05:00. \\ | ||
- | Using this the client may be made to perform a somewhat crude form of bandwidth scheduling. | ||
- | |||
- | <code bash> | ||
- | schedule = throttle_1,01:00:00,24:00:00,download_rate=0 | ||
- | schedule = throttle_2,05:00:00,24:00:00,download_rate=25 | ||
- | </code> | ||
- | |||
- | ==== Saving torrent state and resume data between sessions ==== | ||
- | |||
- | Point to a directory where rTorrent will save the torrent files. You \\ | ||
- | may also use relative paths if you want different session \\ | ||
- | directories depending on where you execute rtorrent. \\ | ||
- | |||
- | |||
- | <code bash> | ||
- | session = ~/Download/session | ||
- | </code> | ||
- | |||
- | ==== Watch a directory for torrents ==== | ||
- | |||
- | Watch a directory for new torrents, restart torrents that have been \\ | ||
- | copied back and stop those that have been deleted. \\ | ||
- | |||
- | <code bash> | ||
- | schedule = watch_directory,10,10,load_start=~/Download/watch/*.torrent | ||
- | schedule = tied_directory,10,10,start_tied= | ||
- | schedule = untied_directory,10,10,close_untied= | ||
- | </code> | ||
- | |||
- | Watch another directory with a different destination. (0.7.7+) | ||
- | |||
- | <code bash> | ||
- | schedule = watch_directory_2,10,10,"load_start=~/Download/watch_stuff/*.torrent,d.set_directory=~/Download/stuff/" | ||
- | </code> | ||
- | |||
- | ==== Move completed torrents ==== | ||
- | |||
- | When the torrent finishes, it executes "mv -n <base_path> ~/Download/" and then sets the destination directory to "~/Download/". (0.8.4+) | ||
- | |||
- | <code bash> | ||
- | on_finished = move_complete,"d.set_directory=~/Download/ ;execute=mv,-u,$d.get_base_path=,~/Download/" | ||
- | |||
- | # On MacOSX and *BSD. | ||
- | on_finished = move_complete,"d.set_directory=~/Download/ ;execute=mv,-n,$d.get_base_path=,~/Download/" | ||
- | </code> | ||
- | |||
- | For versions 0.7.7 to 0.8.3 use this: | ||
- | <code bash> | ||
- | on_finished = move_complete,"execute=mv,-u,$d.get_base_path=,~/Download/ ;d.set_directory=~/Download/" | ||
- | |||
- | # On MacOSX and *BSD. | ||
- | on_finished = move_complete,"execute=mv,-n,$d.get_base_path=,~/Download/ ;d.set_directory=~/Download/" | ||
- | </code> | ||
- | |||
- | ==== rTorrent Profile ==== | ||
- | |||
- | This is the current profile that I am using for my rtorrent client. Though most is using the defaults, there are some decent features. | ||
- | <code bash | .rtorrent.rc> | ||
- | # This is an example resource file for rTorrent. Copy to | ||
- | # ~/.rtorrent.rc and enable/modify the options as needed. Remember to | ||
- | # uncomment the options you wish to enable. | ||
- | safe_sync = yes | ||
- | |||
- | # Maximum and minimum number of peers to connect to per torrent. | ||
- | #min_peers = 40 | ||
- | #max_peers = 100 | ||
- | |||
- | # Same as above but for seeding completed torrents (-1 = same as downloading) | ||
- | #min_peers_seed = 10 | ||
- | #max_peers_seed = 50 | ||
- | |||
- | # Maximum number of simultanious uploads per torrent. | ||
- | #max_uploads = 15 | ||
- | |||
- | # Global upload and download rate in KiB. "0" for unlimited. | ||
- | download_rate = 2000 | ||
- | upload_rate = 750 | ||
- | |||
- | # Default directory to save the downloaded torrents. | ||
- | directory = /media/harddisk3/home/jason/images2 | ||
- | |||
- | # Default session directory. Make sure you don't run multiple instance | ||
- | # of rtorrent using the same session directory. Perhaps using a | ||
- | # relative path? | ||
- | session = ~/rsession | ||
- | |||
- | # Watch a directory for new torrents, and stop those that have been | ||
- | # deleted. | ||
- | schedule = watch_directory,5,5,load_start=/media/harddisk3/home/jason/images2/*.torrent | ||
- | #schedule = untied_directory,5,5,stop_untied= | ||
- | |||
- | # Close torrents when diskspace is low. | ||
- | schedule = low_diskspace,5,60,close_low_diskspace=100M | ||
- | |||
- | # Stop torrents when reaching upload ratio in percent, | ||
- | # when also reaching total upload in bytes, or when | ||
- | # reaching final upload ratio in percent. | ||
- | # example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0 | ||
- | #schedule = ratio,60,60,"stop_on_ratio=200,200M,2000" | ||
- | |||
- | # The ip address reported to the tracker. | ||
- | #ip = 127.0.0.1 | ||
- | #ip = rakshasa.no | ||
- | |||
- | # The ip address the listening socket and outgoing connections is | ||
- | # bound to. | ||
- | #bind = 127.0.0.1 | ||
- | #bind = rakshasa.no | ||
- | |||
- | # Port range to use for listening. | ||
- | #port_range = 6890-6999 | ||
- | |||
- | # Start opening ports at a random position within the port range. | ||
- | #port_random = no | ||
- | |||
- | # Check hash for finished torrents. Might be usefull until the bug is | ||
- | # fixed that causes lack of diskspace not to be properly reported. | ||
- | #check_hash = no | ||
- | |||
- | # Set whetever the client should try to connect to UDP trackers. | ||
- | use_udp_trackers = yes | ||
- | |||
- | # Alternative calls to bind and ip that should handle dynamic ip's. | ||
- | #schedule = ip_tick,0,1800,ip=rakshasa | ||
- | #schedule = bind_tick,0,1800,bind=rakshasa | ||
- | |||
- | # Encryption options, set to none (default) or any combination of the following: | ||
- | # allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext | ||
- | # | ||
- | # The example value allows incoming encrypted connections, starts unencrypted | ||
- | # outgoing connections but retries with encryption if they fail, preferring | ||
- | # plaintext to RC4 encryption after the encrypted handshake | ||
- | # | ||
- | # encryption = allow_incoming,enable_retry,prefer_plaintext | ||
- | |||
- | # Enable DHT support for trackerless torrents or when all trackers are down. | ||
- | # May be set to "disable" (completely disable DHT), "off" (do not start DHT), | ||
- | # "auto" (start and stop DHT as needed), or "on" (start DHT immediately). | ||
- | # The default is "off". For DHT to work, a session directory must be defined. | ||
- | # | ||
- | #dht = off | ||
- | |||
- | # UDP port to use for DHT. | ||
- | # | ||
- | # dht_port = 6881 | ||
- | |||
- | # Enable peer exchange (for torrents not marked private) | ||
- | # | ||
- | # peer_exchange = yes | ||
- | |||
- | # | ||
- | # Do not modify the following parameters unless you know what you're doing. | ||
- | # | ||
- | |||
- | # Hash read-ahead controls how many MB to request the kernel to read | ||
- | # ahead. If the value is too low the disk may not be fully utilized, | ||
- | # while if too high the kernel might not be able to keep the read | ||
- | # pages in memory thus end up trashing. | ||
- | #hash_read_ahead = 10 | ||
- | |||
- | # Interval between attempts to check the hash, in milliseconds. | ||
- | #hash_interval = 100 | ||
- | |||
- | # Number of attempts to check the hash while using the mincore status, | ||
- | # before forcing. Overworked systems might need lower values to get a | ||
- | # decent hash checking rate. | ||
- | #hash_max_tries = 10 | ||
- | |||
- | |||
- | </code> |