# -*- mode: conf -*- # ====================[ .rtorrent.rc ]==================== # [ Time-stamp: "2008-09-28 11:43:02 leycec" ] # # --------------------( KEY BINDINGS )-------------------- # Type to quit rtorrent. # # Type to background rtorrent. # # Type and to stop and start the currently selected torrent. # Type after stopping to delete the currently selected torrent (but not # the files downloaded for that torrent.) # # --------------------( SCHEDULE )-------------------- # rtorrent has cron-ish scheduling of rtorrent-specific jobs, enabled through # this file by adding lines onto this file, as follows (from the MAN page): # # schedule = id,start,interval,command # Call command every interval seconds, starting from start. An interval of # zero calls the task once, while a start of zero calls it immediately. Cur- # rently command is forwarded to the option handler. start and interval may # optionally use a time format, dd:hh:mm:ss. F.ex to start a task every day # at 18:00, use 18:00:00,24:00:00. # # --------------------( TORRENTS )-------------------- # For scraping (i.e., searching for) torrents, see: # links -g http://www.scrapetorrent.com # links -g http://www.mininova.com # links -g http://www.piratebay.org # # For hacking (i.e., "improving") rtorrent, see: # links -g http://calomel.org/rtorrent_mods.html # ....................{ PATHS }.................... # Default directory to save the downloaded torrents. directory = ~/pub/new # Default session directory. Make sure you don't run multiple instance # of rtorrent using the same session directory. Perhaps using a # relative path? session = ~/pub/new/torrent # ....................{ PORTS }.................... # Note, importantly, that all prominent BitTorrent trackers and clients utilize # outgoing and incoming ports 10000 through 65536. This can be verified via the # Tomato "QOS->Details" page whenever running such a BitTorrent client. This # suggests that, rather than forward those ports via the Tomato # "Port Forwarding->Basic" page - which necessarily leaves those ports # persistently open regardless of whether any LAN machines are running a # BitTorrent client at the time -, one should trigger those ports via the Tomato # "Port Forwarding->Triggered" page - which only opens those ports for so long # as at least one LAN machine is running a BitTorrent client. This is both more # secure and more efficient. The details are as follows: # # | Protocol | Trigger Ports | Forwarded Ports | # +----------+---------------+-----------------+ # | both | 10000-65535 | 63000-64000 | # 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 = 63000-63999 # Start opening ports at a random position within the port range. port_random = yes # ....................{ RATES }.................... # Set the maximum and minimum number of peers to allow in each download. #min_peers = 4 max_peers = 64 # Set the minimum and maximum number of peers to allow while seeding. #min_peers_seed = 2 max_peers_seed = 8 # Maximum number of simultaneous uploads per torrent. #max_uploads = 2 # Max upload and download slots allowed. Disable by setting 0. max_uploads_global = 0 max_downloads_global = 0 # Global upload and download rate in KiB. "0" for unlimited. download_rate = 0 upload_rate = 0 # Stop torrents when reaching either [A] an upload ratio (as percentage of the # file size) with at least so many bytes uploaded, or [B] another upload ratio, # regardless of how many bytes have been uploaded. #schedule = ratio,0,64,"stop_on_ratio=100,0" ratio.min.set=100 ratio.max.set=100 # Check hash for finished torrents? Might be useful until the bug is # fixed that causes lack of diskspace not to be properly reported. #check_hash = no # ....................{ INTERFACE }.................... # Change the key-bindings. key_layout = dvorak # ....................{ TRACKER }.................... # Set to no to disable all tracker requests. Useful for disabling rtorrent # with the schedule command. enable_trackers = yes # Enable connection to UDP trackers? (Enabling this tends to produce connection # errors for SPI-firewalled clients.) use_udp_trackers = yes # Set the numwant field sent to the tracker, which indicates how many peers # we want. A negative value disables this feature. tracker_numwant = 32 # 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 = auto # UDP port to use for DHT. dht_port = 64000 # ....................{ PEERS }.................... # Accept incoming, encrypted connections; try to encrypt outgoing connections; # and, if the peer for those connections refuses to accept our encryption # method, try again using another method. encryption = allow_incoming,try_outgoing,enable_retry # Enable peer exchange (for torrents not marked private) peer_exchange = yes # ....................{ SCHEDULE }.................... # Scheduled commands follow this syntax: # schedule = id,start,interval,command # # This calls "command" every "interval" seconds, starting from "start". An # "interval" of zero calls the task once, while a "start" of zero calls it # immediately. "start" and "interval" may optionally use a time format, # dd:hh:mm:ss. To start a task every day at 18:00, use "18:00:00,24:00:00". # # Also, please avoid using a value of 0 for "start". That tends to cause issues! # rtorrent is a poor "bandwidth scheduler." It has no means, for example, for # entirely throttling bandwidth during on-peak hours. Thus, such scheduling is # best performed by an external scheduler (typically, "cron"). # # Unthrottle bandwidth during the slow hours of the evening (1:00AM--7:00AM). # Rethrottle bandwidth during the fast hours of the day (at all other times). #schedule = throttle_1d,01:00:00,24:00:00,download_rate=256 #schedule = throttle_1u,01:00:00,24:00:00,upload_rate=256 #schedule = throttle_2d,07:00:00,24:00:00,download_rate=1 #schedule = throttle_2u,07:00:00,24:00:00,upload_rate=1 # Watch torrents added to and deleted from this directory. (Specifically, auto- # start torrents added to this directory and auto-stop torrents deleted from # this directory.) schedule = watch_directory,4,64,"load_start=~/pub/new/torrent/*.torrent" schedule = untied_directory,8,64,"close_untied=" # Close torrents when diskspace is low. schedule = low_diskspace,12,64,close_low_diskspace=256M # ....................{ SYMLINKS }.................... #on_start = link1,"create_link=tied,,.doing" #on_stop = link1,"delete_link=tied,,.doing" #on_finished = link1,"create_link=tied,,.done" #on_erase = link1,"delete_link=tied,,.done" # ....................{ ADVANCED }.................... # Do not modify the following parameters unless you know what you're doing. # Always use MS_SYNC rather than MS_ASYNC when syncing chunks. This may be # nessesary in case of filesystem bugs like NFS in linux ~2.6.13. safe_sync = no # Tailor rtorrent behavior for which type of service (tos)? (These are: # "default", "lowdelay", "throughput", "reliability", and "mincost".) #tos = throughput # 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 # Maximum number of sockets to simultaneously keep open. #max_open_sockets = 256 # Set the umask for this process, which is applied to all files created by # the program. umask = 0077 # ....................{ DEBUGGING }.................... # Enable logging of the peer handshake? This generates a large number of log # messages, but may be useful to debug connection problems. #handshake_log = no