Howto: Use rtorrent like a pro

I’m a huge rtorrent fan. I can’t imagine why anyone would use anything else, unless there’s something funky the big-name programs can do, that rtorrent just doesn’t handle yet.

This time, instead of introducing you to rtorrent nice and easy, like I did with cplay, I’m going to give you a brief tour, and then I’ll show you something very cool you can do with it. rtorrent is an amazing, complex, powerful program that is at the same time sleek, clean, comprehensive and ultralight — and I’m giving you just one small idea of its potential.

But first, let’s scratch the surface. Like a lot of console-driven programs, the startup screen for rtorrent is … rather dry.

That’s all you get. Exciting, isn’t it? 🙄

To add a torrent, press return and navigate to the torrent file. In this example, I’m using one of my favorite Revolution Void albums, “Increase the Dosage,” from Jamendo. I can’t guarantee you’ll like it, but it’s a free and legal download and it makes for a good example.

You can use tab completion to make your way to it. Double-tab shows a list of available path options that match the path you’ve already started. Your path starts in your home directory (unless you started it in a lower directory than that), so you don’t have to give it the full root path if you don’t want to. Press enter when you’ve found the one you want, and rtorrent will add it to the list.

Note that it’s still labeled as “INACTIVE.” rtorrent won’t start downloading until you tell it to. Use the arrow up and down keys to highlight the torrent (it will be marked with a bar of asterisks) and press CTRL+S.

Now we’re moving. The torrent is marked as active, the tracker will be contacted, and provided there are adequate seeds, downloading will start.

That’s about it, in a nutshell. There are some customary points that you’d expect from a torrent client. Press the right arrow while a torrent is highlighted, to see a detailed breakdown of the information available.

To get back to the main list, use the left arrow. Bandwidth throttling might be important to you too. If you’re used to capping your bandwidth (I choke my upload speeds to keep my wireless router from having a nervous breakdown), try using the a-s-d, A-S-D, z-x-c and Z-X-C keys to trim the speed to your liking.

If you take a few moments to experiment, you’ll find that pressing the numbers 1-6 gives you a revised view, with different filters applied. That can be useful if you’ve got 10 or 12 torrents running at a time, and you want a clear list of finished torrents, or stopped torrents. And most important, you can quit the program with CTRL+Q.

This is where you can stop if you just wanted the short tour. The next part is for people who really want to put rtorrent to work, and don’t mind getting their hands dirty. 😈

When you started rtorrent for the very first time, you probably saw a warning message that told you there wasn’t a .rtorrent.rc file to follow. That configuration file is what morphs rtorrent from a mild-mannered, law-abiding console gimmick into an unholy torrent-wrangling banshee.

In Ubuntu, the sample rtorrent configuration file is hiding at /usr/share/doc/rtorrent/examples/rtorrent.rc. Copy one for your own perusal, and give it the proper hidden file prefix.

cp /usr/share/doc/rtorrent/examples/rtorrent.rc ~/.rtorrent.rc

Edit, 2010-05-07: Please remember that this post was written a few years ago, and the configuration file for the current, vanilla rtorrent may be different from what you see here. — K.Mandla

Now open that file in your favorite text editor. Take a minute or two to peruse the guts. (I’ve copied one to the Ubuntu-nl pastebin for reference, or if you’re reading this at work on your $3,000 DRM-crippled Vista rig. 😛 )

You should get an idea of what the file can do; setting max uploads and downloads, default throttling and IP masking are all options. But take a closer look at some of these settings.

# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

What’s that mean, you say? Well, it means rtorrent can watch a directory and add torrents to its list automatically, and stop torrents if the corresponding file disappears. Now look at this:

# 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

You can also allow seeding to a specific ratio, a specific total uploaded or both. So if you get tired of carrying the weight of the Internets on your shoulders, you can limit your sharing on any number of criteria.

That’s nothing new, you might say. Azureus does all that, plus it has a feature-rich GUI, is proof of the viability of Java applications and has a cool blue frog as a mascot.

Well, please allow me to retort … with a case study: Imagine you’ve got two machines: Your $3,000 dual-core, dual SATA-drive, LED-bespeckled laptop straight from Dell, with an array of glossy sheen snap covers, eight USB ports, a gigabit connection and a built-in 802.11a-wireless card.

Your other machine is the lowly 166Mhz Pentium laptop. The one with 64Mb of PC66 and a 3Gb hard drive. The one you got from work in 1997 and never took back, even when you left them for another company during the dot-com boom. Burnt-out pixels, loose hinges and one scratchy speaker. The one with the Stone Temple Pilots sticker peeling off the lid. You know what I’m talking about. :mrgreen:

Set up your main rig with a shared network folder (NFS would be perfect for this) on a static IP address. Set up your lowly Pentium machine with a hard line to your router, maybe with a PCMCIA LAN card — something that at least gives you decent access speeds.

Now mount that shared folder directly into your slave’s home directory, maybe under ./watch. Set up the configuration file. Trigger rtorrent on bootup, and tell it to watch that folder.

Now you surf away in the comfort of your shiny dual-core desktop-replacement laptop, and when you find a torrent you like, save it into the local networked folder — perhaps even sending it to that folder automatically, through Firefox’s file extension preferences.

When you save it, rtorrent snaps it up and adds it to its list. It starts downloading it automatically, saving the file locally or perhaps on an external drive. You can set it to follow a certain bandwidth schedule so it doesn’t overwhelm the network, or you could hold all the torrents until the middle of the night, and do all your downloading during the wee hours.

It continues to download until it’s finished, then seeds for as long as you allow it. If it reaches the seeding ratio you set, it stops. If it reaches the upload limit, it stops. And best of all, if you delete the control torrent file out of your local download directory, it halts all the activity on that torrent and subtracts it from the list. Download the torrent, and it starts immediately. Change your mind and delete it, and rtorrent cuts it loose. Clean and neat, all handled automatically and without the least amount of effort on your part. It’s almost like a torrent daemon.

(In my experience, rtorrent never deletes the product files it has already created. So if you start downloading and change your mind an hour later, rtorrent might take the torrent out of the list, but the target files are still available. Conceivably, you could change your mind again and re-download the torrent file, and rtorrent would pick up the already downloaded fraction and get back to work on it. But I’m not 100 percent sure on that because I don’t recall ever doing it, so don’t hold me to that. 🙂 )

I’ll be honest and say I haven’t used Azureus in more than a year, and so it’s possible that you could create the same arrangement with Azureus. But can Azureus run on your leftover Pentium Pro laptop?

rtorrent is highlighted in yellow in that htop window. CPU usage is roughly 1.0 percent of my 300Mhz and the memory profile around 10 percent of my 64Mb, and that’s while it actively downloads the album I started with when I began writing this. Add a few more torrents and of course the profile will go up, but the benefit of running without Java, without the X interface and without two dozen Gnome dependencies should be blatantly obvious. I’m willing to bet your old Pentium could do it.

Spacewise, rtorrent is going to cost you 314Kb for the download and 860Kb to install. libtorrent9 is necessary, so that’s another 284Kb to download and 788Kb on your drive, so you’re looking at less than 600Kb of bandwidth and maybe 1.6Mb installed. Again, I’ve written letters to Mom that took up more space than that.

I hope this is convincing enough to get you to try rtorrent, and maybe even use it on a regular basis. I really believe it’s a better option than most of the prevailing torrent clients, even if it is console-based. If you want to delve even deeper into this amazing little program, take a spin past the rtorrent wiki, which is one of the best-composed and best-written I’ve seen in a long time. The project is very active, and it has the look of it.

Next time: Give up on the Gecko, and browse with elinks instead.

Edit, 2008-02-14: dodger has been kind enough to translate this howto into Spanish; it’s on his blog here. Please remember that my blog is GFDL 1.2, which means you’re free to use or translate this post as you like, so long as you redistribute the content with the same license, or a later version. For more details, see my About page.

Edit, 2008-08-04: If you’d like to see a working example and configuration files for the systems I described here, take a look at this post.

Edit, 2009-01-23: If you’d like to see this setup on exceptionally low-end hardware, consider this example. Even at 100Mhz with only 16Mb for system memory and a lethargic 810Mb hard drive, it’s possible to use rtorrent in a networked arrangement and feed it the work of downloading and seeding.

Edit, 2009-11-14: This post is more than two years old now, but is still one of the heaviest draws to this site. I had to re-upload photos for this page, and likewise had to edit the text slightly to make sure what you saw in the pictures was what you were reading in the text. My apologies if I overlooked any discrepancies. Cheers and enjoy.

Edit, 2010-05-07: It’s ironic that almost exactly on the third birthday of this post, a second image host has expired and I’ve had to reupload the images again. I suppose it’s a testimonial to either this post or to rtorrent (or maybe Revolution Void), take your pick. 😉 Once again, if you see something different from what’s in the pictures, please let me know. It might be around for a couple more years still. 😯

P.S., 2010-05-07: Just for the record, the screenshots that you see currently are of the rtorrent-extended package available in Arch’s AUR. The system is a 300Mhz Celeron laptop running only framebuffer applications on Arch Linux, writing downloads directly over USB1.1 to an external hard drive, accessed across a wireless network with ssh and nfs, and managed by a 120Mhz Pentium laptop running Crux. This is the part where you try to out-geek me. 😈


288 thoughts on “Howto: Use rtorrent like a pro

  1. Matt Neilson

    Thanks for this rtorrent mini-howto. I’ve played with it a little bit, but I think it’s almost time to really put it to work. Jamendo, here I come!!!

    1. dmsuperman

      2596 0.00% 17.79M rtorrent

      That’s seeding 70+ torrents totalling far over 300GB in total size. 0.00% CPU usage, 17.79M RAM usage. rtorrent is definitely lightweight.

  2. Harris

    Well I use the same scheme in my house. An old 366MHz K6 with 192MB RAM for torrents and file server.

    I use tightvnc and open azureus. I have a load average of 2 and so when copying from NFS the speed is small (4-5 MB/sec). Now I have tested ktorrent but while it´s much lighter it crashes every half day!

    I ‘ll give it a try, but I was wondering can you change on the fly the upload/download speed per torrent like you can in azureus?

  3. Paul

    Thanks, great guide! Really well put across. I looked at rtorrent briefly recently but didn’t see any of the more advanced features you talk about!

    I’ll most certainly be giving it another look now 🙂

  4. K.Mandla Post author

    @Harris: I believe so. Try highlighting the torrent you want to throttle, then press the right arrow to get the detailed information screen. I believe there are individual torrent speed controls available from there.

    @alex: I’m not completely sure. I run it on a home network and don’t have enough experience with socks proxies to answer confidently. Perhaps someone else who has worked with them can chime in.

  5. tigerplug

    Heres a great link for all torrent freaks out there:

    Its like THE Google of Torrent searches. I’ve always found it very reliable. I’ll be making a few posts about it in the near future so drop by and check it out.


  6. Nico Cesar

    don’t miss this ubercool tip:

    screen rtorrent

    …and whats so exiting?

    press Ctrl-a d and it will detach, and log out (leave de machine on!) and come back later,

    screen -r

    and will resume your session.

    PS:man screen and will get a lot of Ctrl-a functions!

  7. Zeke Baker

    Sounds great, but a stripped down version that can run on DD-WRT or OpenWRT would be better don’t you think? A bit more power than your pentium pro and can’t get closer to the router than that 😛 Unfortunately it would need to be stripped a bit for the most commmon routers (which only have 8 megs of Flash 6.5 of which are filled with either of the above OS’).

    1. Carl

      neat idea, but not too practical. if you have so little flash avail, then where are you planning on putting the torrents and data? if you have nfs/samba mounts available, just run rtorrent from there then.

  8. Harris

    OK started using it. Very nice, fast and (still) stable.

    Though in some torrents from a certain tracker I get:
    Tracker: [Could not parse bencoded data]

    The same thing happens with bittorrnado, but not with azureus and utorrent. Any help?

  9. Commentator Extraordinaire

    Archonon: “But how to stop torrent automatically when it has 100% downloaded?”

    You don’t, you effing leech.

  10. torrenTools

    also i suggest to use torrenTools, is a browser toolbar for Mozilla Firefox and Internet Explorer; allows to search 41 specialized torrent search sites for needed files (2torrents, bitenova, bitoogle, bittorrent, bittorrentshare, bt.etree, btbot, btjunkie, btwarehouse, bushtorrent, demonoid, extratorrent, fenopy, flextorrents, fulldls, google, isohunt, jabberwalker, letwory, litebay, meganova, mininova, monova, mybittorrent, newtorrents, nova9, orbdesign, smaragdtorrent, snarf-it, thepiratebay, torrentat, torrentbox, torrentfinder, torrentportal, torrentreactor, torrentspy, torrenttyphoon, torrentvalley, torrentz, worldnova, yotoshi).

    Extra feature: torrent newsfeed, links to 30 torrent’s sites, links to 12 torrent’s group of discussion, links to 12 torrent’s forum.

  11. mrisi

    I’ve always been pissed with how Azureus takes up so much memory and is so unstable, rTorrent serves my purposes almost perfectly well. The only thing I’m missing is being able to select which files to download within a torrent. Or maybe it’s there and I’m missing it. Any thoughts?

  12. mrisi

    Nevermind, figured it out! Go to the file list, hit space on the file you want to not download. hit space again to tell it it’s priority. I’ve definitely found my new favourite torrent client, just uninstalled azureus! 😀

  13. Pingback: Top Posts «

  14. Michelle


  15. Adam

    I’ve written a nice small shell script that adds a download queue facility to rTorrent. So that I don’t have to see once it a torrent finishes downloading. It works like charm.

  16. nik

    thanks for that article. bookmarked it. i love rtorrent, mostly because my machine is very old and darn slow.
    Good work 😉

    1. efen

      rtorrent runs now on my sheevaplug (a plugcomputer), I am controlling it via wtorrent, a web-frontend.

      – btw. the sheevaplug is very nice 🙂 it is really something from the future and only for 100$

      Marvell-SoC Kirkwood 6281 with 1,2 GHz
      512 MB RAM and 512 MB Flash-Memory – with USB slot and SD slot

      I am running it with ubuntu 9.04

      and rtorrent is perfect for its lightweight – wtorrent was quiet a hassel to install though since I wanted to use lighttpd, but it worked out

      # one questions remains with rtorrent – how is the port forwarding managed in regard to NAT on a DSL-router. in the .rtorrent.rc there is a port-range to uncomment but I am unsure if it has to be a range and not only one port like in azureus.

      maybe somebody can shed some light on it

      1. Dalif

        You can set the range as port 1234-1234. In other words, the port range is just that one port. Then nat that port in your router. Or, if your router supports it, nat a port range like 1234-1244 and tell rtorrent to open a random port in that range everytime it starts. Whatever works for you.

  17. chaidir

    woww…. thanks for the great tutorial.

    now, I’m using rtorrent 😀

    May I link this article into my blog?

    Thanks again 😉

  18. Pingback: rtorrent - torrent client berbasis teks « aCh

  19. losher

    Although it’s far from perfect, Azureus lets you run
    safepeer, which is probably a good idea…

  20. Pingback: Utilizzare torrent da shell at Digital Design News

  21. dgeezer

    Thanks so much for the excellent tutorial.

    I now have rtorrent running on my Debian Slug (nslu2) with an attached USB hard drive. It only draws about 30w of power and serves the downloaded files to any pc on our network.

    This is my first ever experience doing anything with Linux other than installing Ubuntu from a live CD once. I may become a Linux convert based on my experience with the NSLU2, Debian and rtorrent.

  22. Pingback: Transparent consoleprograms for linux i use. « Minimalistic Transparent X-Desktop

  23. Kuraudo

    I’m missing one thing with rTorrent (and almost every other torrent client out there). To be able chose a specific path for each of the files in the torrent.

    If you download an album named “abc” rTorrent will automatically save it to /my/path/abc/ but I want to save it to /my/path/abc_2003/

    Anyone has any ideas how to get it working? Because if I can do that rTorrent has everything I need.

    1. coconaut


      $ man rtorrent

      ^O Change the destination directory of the download. The torrent must be closed.

  24. Pingback: howto use rtorrent to download torrents « ditoinfo in english

  25. Johnston

    I’ve been using cli Azureus for a couple of years. It does have dht and per torrent throttling which are for me must have features. But rtorrent is designed as a cli and is more informative so I’ve been thinking about using it for awhile.

    As you know, Az uses only one port while rtorrent defaults to 6890-6999. Can rtorrent be made to use one port? If not, how do you decide the right number? Why is 10 better than 9 or 11?

  26. pacmon

    To download only selected files from within a torrent:
    – select the torrent on the main screen then right arrow,
    – down arrow to ‘file list’ option, then right arrow
    – select each file and toggle the priority with asterisk key (*) -> ‘off’,’hig’ (high),” (normal)
    – set the files you don’t want to be ‘off’


  27. Toon

    Great article, thank you very very much!

    Finally getting rid of Azureus. Running Azureus remote with ssh -X was a pain in the *ss 😀

    ssh+screen+rtorrent rocks !

  28. beppe

    If you like exists a python program called rtorstat that creates a web page HTML with the statys of all torrents managed by rtorrent.
    I modified it so that it is not needed bittorrent installation anymore, I can send to blog if you tell me how to attach it.


    blu. eagle

  29. Mintz

    Echoing christooss’s question.

    Can you select the files within a torrent that you don’t wnant to download?

    If I download a discography torrent, can I prevent is downloading some of the tracks?

  30. tim

    rtorrent is slick!
    but BUT it will not move torrents on completion 😦
    this is a major problem for my work-flow or should i say play-flow
    (this is true as of v05.3 24/07/2007)

  31. Pingback: test 07/29/2007 « Strange Kite

  32. Adam

    Like I mentioned before. I’ve written a shell script that adds a queue facility to rTrorrent. For example. I can have rTorrent download at most 3 torrents at any point, the rest of the torrents are queued. Once a torrent finishes downloading, it moves the downloaded files to some other directory so that it doesn’t seed this torrent! 🙂

  33. Pingback: My daily readings 07/30/2007 « Strange Kite

  34. Nikodem

    Hi there,

    I have a weird problem with rtorrent. The throttle is off (or set to 300/40). I’m connected to internet with a 3 Mbps connection so I get download transfers up to 360 KB per second. Unfortunately in rtorrent (and only there) I cannot get a download rate faster than 60 KB/s. The download speed is always balancing between 55 and 59.5 KB/s.

    It’s very annoying. I thought about the throttle so I set it to 300/40 KB/s and nothing changed. Then I thought about the default config, so I have copied it from /usr/… and nothing changed.

    Rtorrent runs on my second computer (Ubuntu 7.04). Both computers are connected to the internet by a D-Link DI-524 Router, but I haven’t been downloading anything on the first computer while testing rtorrent on the second one.

    Please, help my in any way. Give me a hint or something. I like rtorrent and I wan’t to keep it, but I cannot live on those speeds. For the same reason, I have uninstalled torrentflux earlier (also problems with download rate). But, for example Azureus speeds very nice.

    Thanks for any help.

    Best regards,
    Nikodem Osmialowski

  35. coolant

    Great stuff.
    I never realized rtorrent was so capable, although it’s the only client I’ve used (after the initial checking out) so far.

    Thanks for the tips, though, and might I add, that comparison of Azureus vs. rtorrent , well, was like telling my story about my problems 😉 . Only that my downloader box is p2 -233(a turbo button boosts its speed too) . hah (better than p1 – 166 huh?)

    Thanks a ton.

    1. ruler

      there is no built in support for ipfilter in rtorrent.
      rasterbar libtorrent has it.

      perhaps there’s a patch to allow using ipfilter in rtorrent. just check the tickets on the website.

  36. kuron rozu

    Use MoBlock as an ipfilter. It’s just as good as PeerGuardian or Safepeer, but requires a little more configuration.

    Nikodem: In rtorrent the up/down is reversed 300/40 you have set up is actually 300 upload/ 40 download.

  37. Pingback: NSLU2 Torrent Box « Dgeezer’s Weblog

  38. Pingback: » rtorrent on Debian/Ubuntu

  39. Pingback: majecek blog » Blog Archive » rtorrent - console client

  40. anandus

    I don’t know if anybody cares, but I’ve got rtorrent running on my external harddisk!

    It’s a Western Digital My Book world edition, and now it works fine as a download machine!
    It’s an ARM-processor (apparently 50 times slower than a P3) with 32Mb, but rtorrent does a good job!

    (Although, I might use ntorrent to connect to it on my Ubuntu desktop machine, because I’m a lazy GUI-man 😛 )

    But I’m very happy with the minimal footprint and the great performance of rtorrent!
    Like a pro 😉

  41. nikzon

    Hello! 🙂
    Great turtorial!
    I have a problem with rTorrent not seeding, leeching works perfectly fine. Tried to google this for day with no luck 😦
    There is no problem with portforwarding because azureus works fine on the same ports as i try to run to run rTorrent.
    Do I have to run rTorrent in /home dir ??
    Anyone had the same prob? thankful to any suggestions…
    Gentoo dist btw 🙂

  42. Pingback: pebkac thoughts :: links for 2007-09-29

  43. Ishan Arora

    is it possible to put the elf binary and all its dependencies in, say a flash drive. I need a text based portable torrent client for i686 linux platform. please help me if you can.

  44. vedang

    This is the best rtorrent tutorial I have come across, giving me everything I want, without too many details.
    I just have one small problem.
    I set rtorrent to use torrent files automatically from one folder, and use a default location to download. However, once the download occurs, I want to categorize it in separate folders (Music,Movies.etc). If I do this, I have to stop seeding the file, and delete the torrent, else rtorrent will download it all over again. So how do I change the download folder of a currently downloading file?

    I tried Ctrl-D which stops the download, but the torrent status is [OPEN]Inactive. If you do Ctrl-O, it says changing path of Open file.

    Any suggestions?

  45. Pingback: rtorrent

  46. kameleon

    This is just totally awesome. Where you say “(In my experience, rtorrent never deletes the product files it has already created. So if you start downloading and change your mind an hour later, rtorrent might take the torrent out of the list, but the target files are still available. Conceivably, you could change your mind again and re-download the torrent file, and rtorrent would pick up the already downloaded fraction and get back to work on it. But I’m not 100 percent sure on that because I don’t recall ever doing it, so don’t hold me to that. 🙂 )” I can attest that it will resume. I started a download on one machine and decided to move my entire rtorrent setup to my server. I just copied over the files my main machine had downloaded and transfered over the .torrent file… It picked up where it left off after a quick hash check.

    Although I too deleted a file but it still shows [OPEN]. Any ideas?

  47. the2ndHare

    vedang: Try Ctrl+K, it changes a torrent state to [CLOSED].

    To all of you, who are desperate to make torrents stop once they have completed downloading + move the files automatically — this is where you look:

    A couple of questions for all Debian-NSLU2-torrenters (well, and others too):
    1. The hashing is terribly slow, and it happens *every* time you start rtorrent, even if you have your session saved, and ended the program correctly. Is there a way to speed/skip hashing?
    There are these advanced settings like hash_read_ahead etc. I`m just a bit afraid to use them blindly for that might cause memory/processor stress…
    2. How does rtorrent consume RAM? It looks like NSLU2 runs out of memory every… like 24-26 hours and kills the screen and rtorrent processes. What can be done to prevent this behavior?

    The above two problems currently result in terrible performance, because ¹as rtorrent is started it begins hashing for hours, then eventually uses up all RAM, gets killed, goto¹.

    Thanks in advance for all the answers, and many thanks for this great article!

  48. nobody


    I had the same problem as you with rTorrent crashing (“HandshakeManager::receive_succeeded(…)” error), with Debian Testing (Lenny). rTorrent was running fine in Debian Stable (etch), but it was a very old version.

    I search around google and rTorrent website, seems like this is a known problem:

    Most websites suggest compiling your own, with the correct boot flag. At the end of Ticket #841, someone posted a website of compiled version of rTorrent. I have been using that and have no problem so far.

  49. Avi Alkalay

    Some ISPs limit the BitTorrent stream with traffic shaping.

    To workaround such devil limitation on ISPs, ask rtorrent to try encrypted connections. I have this in my ~/.rtorren.rc:


    Even if you ISP does not implement traffic shaping, please crypt-enable your BT client so your connection with those who are shaped may be faster.

    rTorrent simply rocks. Started to use it today and it is everything I need.

  50. PrinceVlad

    Very nice program, easy to use…. but my downloads seem to be capped at 50 kbps. I can get 250 kbps on one torrent in windows (utorrent), but if I download the same one on Linux/rtorrent, it never gets higher than 50-52 kbps. What am I doing wrong? My upload is fully utilizing available bandwidth. uploading at app. 100.
    Seems to me to be some sort of capping on uploads in rtorrent, yet I can’t find any tweak for that…

  51. sessner

    Thanks for the tutorial. I am also up and running with rtorrent.

    Does anyone know if I can copy a download when it reaches 100% but still share until a ratio is met. All the info I’ve seen will move a torrent when finished (ratio met), but doesn’t seem to have any way to act when the download has completed (100% downloaded).

  52. DeAnander

    I am a bittorrent idiot, I confess. new kid on the block. I picked rtorrent because it was cmd line/curses and looked functional.

    I have so far been able to download only files of the expected size completely filled with NULL. at first I thought “wow that was fast!!!” but then realised what I actually had was Nuttin. is this normal behaviour for rtorrent, to precreate the right size file filled with NULL?

  53. K.Mandla Post author

    Yes, it allocates the space to the file before it starts piecing it together. Wait for the file to complete downloading before you start playing with it. 😉

  54. Heso

    Recent version of rtorrent have a “session = /dir” parameter. If you use it, once a hash is fully performed it will write some data to the session dir which will allow it to skip hashing the same pieces next time.

    Crashing, especially on devices with small amounts of RAM, can be related to RAM running out. rtorrent seems to use a lot extra memory during hashes, especially on large torrents. On Linux-enabled routers that are capable of adding extra storage via USB (rack HDD, flash stick) make sure you create and enable a swap partition of at least 64-128 MB (I have 512 MB, just in case). It may help fix this problem.

  55. Pingback: Tiled window manager « Motho ke motho ka botho

  56. pa

    rtorrent is great. I tried the various webui’s but have finally just settled on using the client itself through ssh/screen.

    I have one problem with the watch folder. When I stop a torrent in rtorrent (^d). it is immediately reactivated becuase its .torrent file is still in the watch folder. Is there a solution to this?

    Also, I would like rtorrent to stop deleting files from my watch folder when I remove them from rtorrent. Why can’t it just move them, or rename them .removed?

    I cannot figure out how to use view_add, which I assume would add some organizational functionality, labeling and sorting torrents.

    It would be nice, when using the “move completed torrents to a new location” scheme, if rTorrent could first hash check the FINAL destination, in case you just want to seed something you already have.

    Lastly, how about appending “.incomplete” to files that are incomplete, instead of moving them at the end? uTorrent has this feature.

  57. Daengbo

    I used btdowloandmanycurses for a long time via screen, which is what I guess you do to check the status of your torrents. It worked well but was too difficult for my SO to handle easily (and she’s pretty bright).

    Eventually, I moved to Torrentflux (a web app) on a headless server. I wrote up a howto at

    For the lazy ones, there’s even a NAS which comes with a BT client pre-installed.

  58. Artvox

    Thanks for this! Excellent introduction to the best c-l torrent client out there… IMHO…

  59. Rich

    “””Your other machine is the lowly 166Mhz Pentium laptop. The one with 64Mb of PC66 and a 3Gb hard drive. The one you got from work in 1997 and never took back, even when you left them for another company during the dot-com boom. Burnt-out pixels, loose hinges and one scratchy speaker. The one with the Stone Temple Pilots sticker peeling off the lid. You know what I’m talking about. “””

    Ha Ha Ha, that got a giggle out of me. There must be a lot of old stolen laptops around like this.

    By the way, great guide on what to do with old hardware.


  60. RobertW

    Great stuff, did get me going after a couple of minutes. Thanks. Does anyone know a good RSS script to autodownload torrents when they come available to automate this even further 🙂

  61. Pingback: Torrent-Source » Blog Archive » How to set up rtorrent on CentOS

  62. Rick

    Is it in some way possible to move the finished “files” automaticly to an onther location?

  63. MacTwister


    Just instaled

    I dont understand because when i close the windows and reopen termainal i lose all the torrents in there. dose it not save?

  64. peter

    if rtorrent is so good, someone please tell me how I can set upload limit for each torrent. I’m not talking about the throttle can be set with asd/ASD zxc/ZXC, but to be able to adjust the limits of each torrent, like

    1st torrent – upload: 5K/s, download 10K/s
    2nd torrent – upload: 10K/s, download 15K/s
    3rd torrent – upload: off, download 20K/s

    Thanks in advance

  65. Reinis

    you can’t imagine why anyone would use anything else? how about queueing without annoying scripts? how about labels? meh

  66. mike

    i use screen to view rtorrent. is there a way to keep rtorrent running without actually having screen open in the terminal?

  67. Pingback: 500,000 hits « Motho ke motho ka botho

  68. Pingback: Terminaldipendenza - La vita in una shell « fox91’s blog

  69. Pingback: Marco Lancini Weblog » Terminaldipendenza

  70. Pingback: APT-DEB.COM » Blog Archive » How To Compile rTorrent From SVN In Ubuntu Gutsy Gibbon

  71. Pingback: How Do I Compile rTorrent From SVN In Ubuntu Feisty Fawn | Linux Tomorrow

  72. Pingback: A blog needs a title? Damn… » Blog Archive » How to set up rtorrent on CentOS

  73. anonymous_coward

    Hi all. I know only the very basics of bash (i.e. I am hopeless at writing ANY scripts). Currently I am using this:

    1. I put my .torrent files in “torrents/”.
    2. find ./torrents -name “*.torrent” | \
    while read i ; do cp “$i” watch && sleep 12h && date ; done

    (Torrent files will be copied from “torrents/” to “watch/” at intervals of 12 hours. “date” displays the time of day so you can keep track.)

    3. Edit the default “.rtorrent.rc” file.
    Look for these 2 lines:
    #schedule = watch_directory,5,5,load_start=./watch/*.torrent
    #schedule = untied_directory,5,5,stop_untied=
    Change to:
    schedule = watch_directory,60,60,load_start=./watch/*.torrent
    schedule = untied_directory,60,60,stop_untied=./watch/*.torrent
    (The numbers are in seconds.
    60 secs should be frequent enough?)
    (“watch_directory” and “load_start” are self-explanatory.
    “untied_directory” and “stop_untied”: stop a torrent if its torrent file is deleted [untied].)

    Lastly, look for this line:
    #schedule = ratio,60,60,stop_on_ratio=200,200M,2000
    Change to:
    schedule = ratio,60,60,stop_on_ratio=100
    (Stop at the minimum 1:1 ratio. Can be increased if you want to be generous.)

  74. anonymous_coward

    Dear all,
    The above command,
    find ./torrents -name “*.torrent” | \
    while read i ; do cp “$i” watch && sleep 12h && date ; done
    does not add .torrent files in order of name, but in order of file creation time.

    To sort all .torrent files in “torrents/” by name and add them to the ‘queue’ in that order, please change the command to:
    find ./torrents -name “*.torrent” | sort | \
    while read i ; do cp “$i” watch && sleep 12h && date ; done

    Sorry for the mistake.

  75. anonymous

    Would like to point out a mistake in anonymous_coward’s post above.
    The command
    find ./torrents -name “*.torrent” | sort | \
    while read i ; do cp “$i” watch && sleep 12h && date ; done

    should be instead
    find ./torrents -name “*.torrent” | sort | \
    while read i ; do cp “$i” watch && date && sleep 12h ; done

    (“date” and “sleep” are in the wrong order! =p)

  76. eltrax

    Just fixing pacmon’s post:

    To download only selected files from within a torrent:
    – select the torrent on the main screen then right arrow,
    – down arrow to ‘file list’ option, then right arrow
    – select each file and toggle the priority with the space bar -> ‘off’,’hig’ (high),” (normal)
    – set the files you don’t want to be ‘off’

    The asterisk key (*) changes priority for all files.

  77. Tequeño

    Please post some information on using the xmlrpc interface.
    I would like to use it to control the upload/download throttling by other programs, eg: crontab, website, etc.

    I know about the schedule commands in the rc file, but I would like to throttle the speeds based on the day of the week, and currently its not possible without xmlrpc.

    Also, is it possible to use it without depending on a webserver?

  78. don jackson

    hii everyone i need a help about rtorrent i have installed it in fedora8 by using “yum isntall rtorrent” but when i run rtorrent it shows Could not read resource file: ~/.rtorrent.rc what might be the problem could anyone help me in this please…. this is my mail id help needed please
    waiting for ur reply

  79. Pingback: rtorrent - console torrent client « Majecek’s Weblog

  80. jestergod

    i’m also having the same problem on my gentoo box as nikzon. i can leech the torrent with no problems but as soon as the torrent finishes downloading, it does not seed. i’ve googled this for days and still no results. can anyone help me out on this? i will post any information that you need to take a look into this. thank you!

  81. Pingback: Linux für alle » rTorrent kompilieren von SVN in Ubuntu 8.04 Hardy Heron

  82. Pingback: Tutoriais de utilização do Rtorrent - Linux « Isso e Ócio

  83. Andrew

    I got a problem and i cant find the solution.
    What ever torrent i try to load i got the same message…

    Hashing: Storage error: [Hash checker was unable to map chunk: Not a directory]

    Is there a way to fix my problem???
    Please help

  84. Pingback: .::virtualizado::.» Blog Archive » Como compilar rTorrent desde SVN en Ubuntu 8.04 Hardy Heron

  85. Friend

    Please, tell how to configure rtorrent to load torrents from specific dir ( for example, /root/.rtorrent/allmytorrets/*.torrent ) in “stopped” mode.

    I want to download different torrents to different dirs, so if rtorrent can keep new torrent in “stop-mode”, i can change dir to download and then manually start it.


  86. ghindo

    Great tutorial! My only qualm with rTorrent thusfar is its inability to create torrents. Otherwise, quite a nifty little program.

  87. Jon

    Can somebody help me?

    I love rtorrent too. I have it running on an old laptop from midnight to 8am (off peak). It monitors a directory for .torrent files, and when it has finished downloading one it copies the file to a ‘completed’ directory, and deletes the original .torrent. The only thing is, it keeps the .torrent it has created in the session directory, and therefore never drops any torrent from its list.

    I’m assuming there’s something I can put in the .rtorrent.rc file to make it remove them on completion, but I have no idea what it might be…

  88. phil

    IMHO a torrent program is crap unless it has DHT…demonoid files were kept alive for over six months due to DHT after the sites CRIA issues (but now its back!). decentralization is essential to the success of the torrent network. imagine tpb going down tomorrow…

  89. Pingback: 010#101-C’e’ sempre un altro bug » Blog Archive » FreeNAS+rtorrent: una perfetta download machine

  90. Pingback: Case in point: An rtorrent slave setup « Motho ke motho ka botho

  91. thebluestreak

    just wondering how to torrify this for ISP’s that do bandwidth shaping and music / movie copyright holders looking for downloading terrorists to jail.

  92. Pingback: Web Site Eva » Blog Archive » rtorrent - torrent client berbasis teks

  93. Pingback: How-To rtorrent (norsk) at Ub00ntu

  94. Pingback: You know you’ve hit the big time when « Motho ke motho ka botho

  95. spideyman

    thanx a bunch as iwas ktorrent in kubuntu which was comparible to utorrent but this is so lightweight it barely registers on my system usage rtorrent is the shit.

  96. Pingback: rtorrent - первые шаги | librarian@blog:~$

  97. J

    Hi ,

    Can rtorrent be set to download into a folder of my choice?
    not a sep folder for each just like a downloads folder so it satys out of my home folder?.
    thx for the TuT v very helpfull.
    any help on the settings for folders would be great.

  98. gev

    “Commentator Extraordinaire May 4, 2007 at 1:27 am

    Archonon: “But how to stop torrent automatically when it has 100% downloaded?”

    You don’t, you effing leech.”

    Sorry, I didn’t quite catch that. Did you just offer to pay for the uploads that my ISP charges me for in addition to downloads?

  99. Vash

    Excellent post, But it’s been a little outdated for a while (althou still very valid) if you choose to update it consider including explanations of how to get one of rtorrents web guis running (like rtgui).

  100. Dr Small

    K.Mandla, could you please either send me a copy of rtorrent.rc or at least update your link in your post to reflect to one. I’m not on no 3,000$ crippled Vista system, but I still don’t have it in /usr/share/doc.. (I’m on Arch, and she apparently don’t have it).

  101. ibob

    It is the most valuable starter’s documentation of rtorrent currently. Bravo!

    I have seen how to select specific files to download. However, when I use * all to off, and the select one or two files, it still goes and creates ALL the files, allocating space for ALL of them.

    Is the expected behavior or should I look more into that?

  102. Pingback: Ciberterminal: Manejar Rtorrent como un Profesional

  103. Pingback: Cool Command Line Apps for GNU/Linux and other Unix Systems » Linux, open source and me at Internetling dot com

  104. Riccardo

    Thanks for your tutorial, I didn’t know rtorrent before and as of today I’m running it on a Nintendo Wii console and it runs like a charm. It has minimum power consumption so it is perfect to stay 24/7 on 🙂
    I simply can’t imagine which other bt client would fit in its tiny 88MB ram and still retain so many feature as rtorrent!

  105. Pingback: Everybody Wins « I Occupy Space

  106. Pingback: Dots and Loops » rTorrent - console *nix client

  107. Pingback: How to be light « Black Eternal

  108. Empty

    This was a really terrible post. You’re basically saying that rtorrent is the most awesome torrent client out there, but this “banshee” that you tried to show us is quite unconvincing. If people would just stop praising rtorrent for a second, holding it to be the BitTorrent messiah, maybe someone would come up with a better curses-based torrent client for Linux one day. rtorrent is outdated, legacy, and the only reason that newbies like yourself love it so much is because it feels oh-so-Linux and wow-an-rc-file.

    “I can’t imagine why anyone would use anything else, unless there’s something funky the big-name programs can do, that rtorrent just doesn’t handle yet.”

    How about labels for torrents? Oh, rtorrent can’t do that? Hm, well… Then how about setting specific “ratio limits” per-torrent? No, not that either, eh? rtorrent sucks and it’s for the better if the rest of you would just realise that sometime soon.

      1. meliral

        Well said, sirrah.

        No, seriously, “x sucks, someone should make a version that does y” messages get on my nerves.
        If someone wants something done/added to something, they should either do it themselves or, if they can’t (which is not unreasonable) then they can damn well ASK NICELY!

        And anyway, if you manage your file names and directory tree properly, you won’t need labels, and why would you need a specific ratio limit for a given torrent? even if you needed to seed one beyond the others, for instance, you could always, for example, run another instance using a different config file (because it loads the whole re file at startup, you could feasibly write a script that opens multiple instances, swapping in different .rtorrent.rc’s in between) and give it a different max ratio and a different watch folder, where you put that “special” torrent. OK, it’d be a kludge, but it would _work_.

  109. Pingback: The Linux Applications Alternative Series: Bittorrent

  110. irdial

    I wish all tutorials were as well made as this one. Not only have I discovered my new bittorent client of choice, but I now also know about htop. Perfection!

  111. Pingback: Latest news « #!/bin/ksh

  112. aag

    I have another way to use rtorrent. I have an Asus router flashed with DD-WRT firmware. The router has 2 USB drives, so, you just have to install rtorrent in the router, plug a USB hard drive and that little box will download files for you all day. You can claim that you can do that with a Western Digital My Book (as anandus said before) and you don’t have to care about two boxes. Well, with a flashed router like mine (or other DD-WRT flashable) you can go even further, you can also install an emule, ares, gnutella, fastrack… and some others P2P clients within the same box.

  113. Shinakuma

    Rtorrent is great. I love it. Together with hellanzb it makes every old machine usefull

  114. Pingback: Dedibox, VPS and Seedbox Hosting Services & Reviews | THE source for BitTorrent & P2P Tips, Tricks and Info. | FileShareFreak

  115. skralljt

    I love rtorrent, figured out how to use it from this website, but couldnt’ help wonder about the file extension preferences you speak of. I looked through the firefox preferences to figure out if I could send torrents to a separate folder, jpegs to another folder, and zips to a dl folder. Can’t find any dialog for that. Is it in some arcane about:config entry or something?

  116. Anthony G

    Empty’s comment is kind of funny. The author of this article and many of the commentators listed many good solid reasons for using rtorrent. Nobody mentioned the ability to use a .rc file for storing configuration information as being a particular plus. That’s just standard practice. Empty also provides no evidence for their claim that it’s “outdated, legacy” (often synonymous in any case).

    As someone using GNU/Linux for close to 10 years, I’ve found rtorrent to be the best client available that meets my needs (KTorrent was my second favourite). The only two missing features, Empty mentions is torrent labels and per torrent ratios. I’m generally seeding about 40 torrents at any one time and I’ve never needed labels. My default ratio is set to 1:1 which I use whenever I obtain a torrent from a public tracker. For torrents from private trackers, I simply tell rtorrent to ignore the ratio setting for those individual torrents – as I generally want to leave those torrents seeding for as long as I still have the relevant files on my system.

  117. Kristian Z

    I’d like to use rtorrent, but the lack of labels and sorting of downloads into separate directories is a deal-breaker. I just can’t have movies and apps and music all in the same folder, it would be a mess.

    Ideally rtorrent would auto start a torrent in the watched directory (which it does), add a label automatically by matching tracker URL to a regexp (which it does not), and use that label to sort the download into a purpose-designated directory (which it does not).

    It bugs me that no torrent client can do that. It would demand nearly no attention and maintenance. Just put .torrent files in a directory, and downloads would start and be sorted into directories automatically.

  118. Anthony G

    The feature proposed by Kristian Z would be very cool alright and I agree it would be nice to be able to give rtorrent the option of storing different torrents in different directories.

    What I currently do is stop (pause) a torrent after it has fully downloaded, then move the data to the relevant folder / partition depending on the type of data, and then create a symbolic (soft) link in the torrent download directory pointing to the new location. I can then resume the torrent to leave it seeding for as long as I like while having all the music in one set of directories, a latest GNU/Linux distro in the default download directory and video files in another directory. It takes a little bit of extra time and the download directory can get crowded but that doesn’t bother me too much. I just have to remember to delete the symlink if / when I decide to stop seeding a torrent.

  119. Pingback: rtorrent | Secondary cortex: online

  120. Empty


    Anthony: I’ll start off by telling you what I mean when I say rtorrent is outdated. Back in the days there were nearly no private trackers which kept track of a single user’s “ratio”. Back in the days, you’d just seed as much as you felt like and then stop (or not), because no one could tell you to seed this or that much. Nowadays, there’s an abundance of private trackers which *do* keep track of single users, probably even more private trackers than public ones. For this reason some people with not-that-great Internet connections need to be able to easily decide which torrents they want to keep seeding and which torrents they want to stop as soon as they have been downloaded.

    If rtorrent provided this functionality as a manual chore, I wouldn’t be dissing it that hard. But rtorrent doesn’t. Absolutely terrible. For this reason only, one should conclude that this is a terrible, terrible client.

    And labels. Every single major BitTorrent client out there provides support for labels, except for rtorrent. I’m a member at a tracker which provides music, lots of it actually, and I keep every single album that I download seeding, because ratio is a bitch there. At one point I had 300 albums seeding which in rtorrent would of course clutter up the views *completely*. There simply is no functionality for filtering out which torrents you would like to see, neither by tracker (as far as I know) nor by “label”. And even if you could filter by tracker, that still wouldn’t help, because lots of people STILL need labels.

    I still claim that rtorrent is an absolutely horrible BitTorrent client and shouldn’t be used by anyone who doesn’t desperately need to be able to screen their clients, because that’s honestly pretty much everything that’s good about rtorrent.

  121. Alex Alzueta

    Hi from Spain.

    Two Questions:

    – On a downloading file, file size and partial file downloaded size is always put on 0MB, why?

    – ì’ve tried to uncomment and comment ratio scheduled line on .rc file but error appears me on console, how can i solve it? (scheduled command failed: command “stop_on_ratio” not found)

  122. Takla

    I agree to some extent with Empty. He isn’t a troll and has some coherent points to make about the deficiencies of rtorrent. I run rtorrent on a Linksys NSLU2 (slug) running Debian Lenny. rtorrent is the single most unstable console-only application I’ve ever used. Here’s an example of the kind of thing that makes it, finally, unviable: the version in Lenny is a little old, as is normal in a distro. There is a bug where if you choose to have the completed torrents moved to a different folder you cannot stop rtorrent hashing them all over again, despite this config being supported and enabled. On a powerful desktop this would be an inconvenience but on an embedded device with limited CPU resources it’s a showstopper. The bug is known but no fix or patch is available for the version. The advice, as always, is to upgrade to the newest version. To compile on a powerful machine is easy. To compile on embedded is simply unrealistic. To cross compile for armel (the architecture of NSLU2) on amd64 (my desktop) is so full of pitfalls that it’s essentially impossible. So finally the latest version arrives packaged in Debian experimental. I install it and the bug is gone. But there is a new one in the way it interacts with curl which causes it to seg fault. Guess what is the advice from rtorrent bug reports: upgrade to latest version of curl…and so on and so on forever amen. And btw the reason for needing to move completed torrents is because there are no damn labels to keep stuff organised and manageable! rtorrent appears to be brilliant mostly because, like Empty mentioned, *there are no realistic alternatives for use with screen* so for people who need access via screen there isn’t an alternative. And of course it appeals to all the people out there who think console apps are automatically better than GUI apps and get religious about it. I run headless and desktop machines and there are some terrible console apps as well as many great ones, just like with GUI apps. I’ve reached the point where I’m having to move all my torrents to a desktop to be managed with deluge. It’s an excellent client but there goes my savings on the electric bill, going from a 10 watt device to one that uses many times that. Meanwhile the nslu2 now runs amule, rock solid, mature, great interface. It’s not a torrent client, which is what I’d like, but it is totally stable which surely is the first requirement of any application and doubly so for anything which is run remotely. Being kewl is not enough.

  123. Fedorak

    Well, Transmission keeps crashing, so I needed another torrent client and I decided to use rtorrent. The documentation could be better. Maybe they could just use this article in the main site?

    Anyway, it works, it hasn’t crashed and its pretty simple and clean. Speeds are great and since I only DL one, maybe 3 things at a time its perfect. Stays out of the way and doesn’t seem to hog any resources.

    Lots of haters. They make some interesting points, but if they don’t like rtorrent then don’t use it. Thats the Beauty of free software, we can all like what we want and do our own thing. No need to be a hater. Critique when relevant, but don’t be lame and stir up your bad karma dudes 🙂

    Also I never knew about mtop. Very nice. Thanks for writing this informational and very helpful article.

  124. MuRRe

    Thanks for a GREAT guide (you might call it that right?).
    Anyways, rtorrent is great. I use it on my EEE which as EEEbuntu installed.

    I get rtorrent to auto add torrentfiles when put into a special folder, but i can’t get it to remove them automaticly!

    Thanks in advance

  125. Pingback: برامج تحميل التورنت في نظام جنو/لينكس « ubuntu in arabic

  126. BiiPiiGii

    Um, why is it that when I have rtorrent open and utorrent open I’m always told that rtorrent is not connectable. Even if I use the exact same port that was open for utorrent.

  127. lenotops

    Hey guys. I love rTorrent. It works, and has been on for days/weeks and not even a flutter from it. Its fast and connectable. Im using the latest build though.

    rTorrent does support labels in its own goofy way and does in fact watch for directories and download to custom directories.

    It can even be set to delete stuff once things are finished.

    rTorrent is evolving and extremely customizable. The console/terminal aspect of it, quickly makes many brains go into #$!@#% mode, but the truth is, it is actually quite beastly in features.

    I’ll say however, learning it is not for the faint of heart. Mostly for people who are used to computers and don’t mind living in the console. All the excess gui being ripped off makes it one hella fast client. 🙂

    1. La

      Is it possible to have torrent auto stop if it drops below a certain upload speed ?

      Ex: If I uploaded atleast 1:1 ratio and speed is 300KB/s.

      But if speed drops below 300KB/s I want rtorrent to auto stop it.

      Either 1:1 ratio or lets say atleast 300MB upload.. whichever.


  128. Syntac

    Running rtorrent ‘daemon’ on my slug. I drop torrents into a watched directory and manage through ssh from my phone. 🙂 Let’s see Azureus do that! Just wish I could set seed/leech ratio per torrent…Is it in there and I’m just displaying embarrassing noobishness?

  129. Pingback: Screen and rTorrent - All_about_network

  130. dw

    I installed rtorrent properly on CentOS 4.7, and I can get torrents to download. however the rtorrent UI is totally unresponsive. no keys I press will work. i’m accessing it via ssh from Mac OS X 10.5 using Terminal. any suggestions to get the rtorrent UI to work?

  131. Steve W

    You are the one that got me to try rtorrent, and you are the one that got me up and running. THANK YOU!!!

    I’ve got a funky question now, so I figure I should return to the Jedi Master. It’s probably a no-brainer, but I don’t feel like taking chances.

    Question: what is the best way to replace a .torrent file in rtorrent when files are appended to a multi-file torrent?

  132. intent

    Heres an easy way to implement the ability to download your stuff into specific directories. First off you start by creating the catagories (directories) you wish to sort by in a watch/ directory. Then create the same set of directories in a finished/ directory. Finally create a different watch_directory entry for each of these watch directories, being sure to set ‘d.set_custom1’ to the finished directories you created for each of these catagories. The following on_finished command will make sure that your downloads are moved to the custom1 directory you set.

    schedule = watch_directory_1,10,10,”load_start=~/Download/watch/Apps/*.torrent,d.set_custom1=~/Download/finished/Apps/”
    schedule = watch_directory_2,10,10,”load_start=~/Download/watch/Movies/*.torrent,d.set_custom1=~/Download/finished/Movies/”

    on_finished = move_complete,”d.set_directory=$d.get_custom1= ;execute=mv,-u,$d.get_base_path=,$d.get_custom1=”

    (the important part here is the d.set_custom1 in the watch_directory directive.)

    For those who want to whine about what rtorrent doesn’t do, why not write a patch and submit it to the author(s) of rtorrent? Don’t have the ability to do it?, then maybe you should suggest it politely to someone who can.

    1. intent

      Don’t know why my lines were cut in half for the watch directory lines but i’ll paste them again for completeness.

      schedule = watch_directory_2,10,10,”load_start=~/Download/watch/Apps/*.torrent,

      schedule = watch_directory_2,10,10,”load_start=~/Download/watch/Movies/*.torrent,

      (These lines are supposed to be in a single line without any spaces or gaps in the text)

      1. intent

        oops watch_directory_2 is supposed to be unique (ie. watch_directory_1, watch_directory_2, etc).. my bad cant edit posts here

  133. Tundro Walker

    This is just what I needed! I decided to turn the old, hacked i-opener I’ve been farting around into a torrent slave to farm out Ubuntu .iso’s. Been doing command-line only, and experimenting with Bittorrent’s CLI. Not only did it suck up ~50% of the CPU & Ram while running, but it crapped out before the files were even 10% d/l’ed. I finally “gave in” to using rtorrent … held off, because frankly it seemed pretty complex at first glance. I’ve been using it for a while and it’s been flying great. HOWEVER, it’s not re-seeding or uploading; it’s just leaching. I stumbled across your post trying to sort that out, and the rtorrent.rc file is exactly what I needed. I happen to also have an old 166mhz Omnibook 800CT, 32mb ram, 2gb HDD .. think I’ll do the same with it. Except take it to work so it’s sucking up “The Man’s” power and internet connection while torrenting. LOL! Good post! Your trick on making a torrent slave out of these things really goes the extra mile and makes them REAL torrent slaves … park them off to the side and have them baby-sit that shared folder. Nice!

  134. Xavier

    Hi there!

    Great post, great program. Only have one question (i’m a beginner in his first days of xubunut).

    To start the program, I open a terminal type in “rtorrent” and the program starts. “Yeeeees!”
    But if I close the terminal, the program stops. “Noooooo!”

    Isn’t there a cool way to have the program running automatically whenever the server is started and disregarding user sessions? Then I could manage my downloads via the webUI (installed rTgui -great btw).


    Thanks a lot!

    1. The Doctor

      As mentioned, check out “screen”

      – open terminal (if on Ubuntu/Debian “apt-get install screen”)
      – “screen -S rtorrent” : create a new screen session, label it ‘rtorrent’
      – you’ll already be connected to this new screen’s session
      – execute “rtorrent” to load, then “Ctrl+A”, then “D” (this will detach you back to shell/cli
      – type “screen -ls” to view your “Detached” sessions
      – type “screen -r rtorrent” to reconnect back, *like you never left!*

      Combine w/ SSH & track your downloads fr anywhere!

      a couple tutorials:

  135. Pingback: links for 2009-05-05 « H. Kurth Bemis

  136. Pingback: linuxland » Using rtorrent with screen

  137. Xmamx

    Rtorrent not seeding or Rtorrent not seeding completed downloads.

    Just for those people who are having this problem, i found this section in my .rtorrent.rc file that was deleting the *.torrent from the watch directory once the download was complete (therefore not seeding as i could not find the torrent file).

    This is the section below:

    # Move completed downloads
    on_finished = rm_torrent,”execute=rm,$d.get_tied_to_file=”
    on_finished = move_complete,”execute=mv,-u,$d.get_base_path=,/media/fileserver/torrents/Finished/ ;d.set_directory=/media/fileserver/torrents/Finished/”

    Remove the line:
    on_finished = rm_torrent,”execute=rm,$d.get_tied_to_file=”

    I used and automatic installer script to install wtorrent and rtorrent and this setting was automatically loaded.

    Hope this helps someone as this problem has annoyed me for a couple of days.


  138. Pingback: Running rtorrent as a daemon « Motho ke motho ka botho

  139. Pingback: On the menu « Motho ke motho ka botho

  140. Tigrou

    Thanks for the guide. I have one extra question: Is there a way to avoid the initial creation of all the files in the torrent ? I would like to download big multifiles torrents, but I don’t have enough space, and rtorrent tries to create every single file (even if I set their priority to “off” before starting the torrent.

    1. Nick

      I think you will find that this isnt an error message.

      maximise your torrent window and its simply another 2 colums SNUB and FAILED:

      so the headings are:IP UP DOWN PEER C/RE/LO QS DONE REQ SNUB FAILED

      and because the window isn’t big enough to fit them all its wapped
      NUB FAILED around to the next line… this is very annoying i know, but thats all it is

    1. meliral

      RT is a unix program, not a windows app. It. Just. Won’t. Run. Natively.

      However, you can get it going with Cygwin. Cygwin provides a way for Windows to run apps written for Unix, but you can’t often download the binary because it has to be compiled under Cygwin.

      If you aren’t happy patching and compiling software, you’ll have to give up on RT. Otherwise, look at – it provides instructions and links to all the stuff you need. Should be relatively painless.

  141. nerdbert

    I’m just another rtorrent/screen user saying thanks for providing such a wonderful explanation of rtorrent’s features. You should write the documentation for the official website.

  142. Pingback: Torrent on the command line « No_Gui

  143. n0xie

    A lot of good points have been made about why rtorrent is a good client. I use it exclusively on headless servers on fast 100mbit lines to seed to private trackers.

    Now if someone could explain to me how to add a tracker to a torrent while it’s downloading, rtorrent would be even more awesome.

  144. Michel

    Great HOWTO, thanks! I’ve been using rtorrent for a while, in conjunction with screen — web interface? who needs ’em! — it’s really rather convenient if you organize your downloads the old-fashioned way (i.e. with a good directory structure). Just run one rtorrent instance per torrent collection.

    Didn’t know about adding torrents in an inactive state. I normally use Backspace to add a torrent, rather than Enter, and that activates it automatically. Just my twopence 🙂

  145. Pingback: rtorrent too slow? try this! « No_Gui

  146. Pingback: Martes sin X “rTorrent” « Seamos realistas… pidamos lo imposible

  147. Pingback: rofrol's status on Thursday, 17-Sep-09 17:42:11 UTC -

  148. Pingback: rofrol's status on Thursday, 17-Sep-09 17:43:34 UTC -

  149. Simon P

    Here’s my rig:
    A linksys NSLU2 hacked with debian on it (£50 from ebay)
    150TB WD hard drive (present from an old employer)
    NFS set up and SSH as well so I can access it either in or outside of my network.
    rtorrent set up as per these instructions (using screen so I can detach and resume the sessions over ssh)

    This means that I can have my (obviously legal) torrents running 24/7 without having to have a full fat computer on. I can also lot in via ssh (from linux or even windows with winscp) when I am away from home and drop torrent trackers into the watch folder so they start downloading.

    Freakin’ sweet, guys. Thanks for posting this.

  150. ..........

    cli bt clients – an evaluation



    bittorrent-console (old original python client)

    and some other more obscure cli clients not worth mentioning

    evaluate on two factors only, with default settings:
    1. memory+cpu usage
    2. # of peer connections made+download speeds

    my results:
    transmission-daemon won
    bittorrent console lost on memory usage
    rtorrent lost on # of peers + speed

    your results may differ.

    i will still try any new cli bt client. there is still much room for improvement.

  151. Anonymous Benz

    To all of you cli freaks; ever try mldonkey on your little boxes? It’s a cli p2p client, with bittorrent support, gnutella, and more. Perhaps it is able to run on some of these boxes, not sure about memory usage though.

    Would like to hear if anyone makes it work, might get something like that myself. (The Sheevaplug looks cool..:)

  152. Pingback: autonomy's status on Tuesday, 27-Oct-09 22:00:37 UTC -

  153. Pingback: ellipsys

  154. Pingback: rofrol's status on Friday, 06-Nov-09 13:11:27 UTC -

  155. zorbix

    How do I queue downloads in rtorrent? Plus I want only one torrent running at a time, after that has been downloaded and the seed ratio hits 2.0 it should stop and the next download should start.

    How do I do this?

  156. nagen

    Does anyone know how to setup rTorrent for a SSL tracker on Mac OSX.
    Keep getting “Unsupported Protocol Error”
    I presume OSX handles certificates slightly differently than linux!!!!
    Used to work flawlessly on linux!!!
    Just trying to work out this OSX system.

    any help appreciated


  157. AG

    Can anyone explain to me how to auto-delete the torrent and data after the torrent has reached a ratio limit?


  158. John


    thanks very much for your smart tutorial!

    Alas, I’ve been using rtorrent for more than one year, and I have two serious problems:
    1) Often rtorrent does not respond to any keystrokes
    2) Often rtorrent crashes without a cause.

    Believe it or not – these are my problems. I’m using all the time the current Ubuntu version.

    Well, I guess, you’re are not prepared to accept my description – so, let that pass.

    But I have a question:

    Let’s suppose I’d like to download 20 torrents: Torrent-1, Torrent-2 and so on. I want to have rtorrent to use a kind of job list with these torrents – but downloading only (say) 8 torrents at the same time: say Torrent-1 to Torrent-8.

    If one of these torrents is complete (say Torrent-3) rtorrent starts to download Torrent-9, so it is still downloading 8 torrents. If the next torrent is complete (say Torrent-7) rtorrent starts to download the next Torrent-10.

    Is rtorrent able to manage that kind of batch job? How do I have to configure rtorrent to behave in that way?

    If you are familiar with torrent clients you know that vuze or deluge are able to do these things. But what about rtorrent?

    Greetz by John 😉

  159. Yoosah

    Exactly what I was looking for, after trying to run multiple screen-windows with a btdownloadcurses to seed for ratio on a 132MHz 32M laptop with a 1G drive and mounted NAS USB for the downloads, resulting in load averages over 20!
    With rtorrent there is hardly to no machinelag, hashing takes a while but wth, it’s meant to be a 24/7 machine, so a couple of minutes is not going to make a difference..
    Nice clear guide!

  160. Pingback: Case in point: rtorrent slave at 100Mhz 16Mb 810Mb « Motho ke motho ka botho

  161. Pingback: Comparing torrent clients « Motho ke motho ka botho

  162. evidex

    This is probably the only reason I can use rTorrent at all, and a huge help in setting up my torrent server, on a 451Mhz PIII with 128Mb of PC-100 and a total of 29Gb of storage, (2^6Gb, 1^8Gb, 1^10Gb) 🙂

    Thanks! 😀

  163. Pingback: No, terminal apps are not dying « Motho ke motho ka botho

  164. Otto

    Many of my torrents do not work with rTorrent, but they do with Transmission. Perhaps rTorrent was banned from the tracker?

    Is it possible to change the user-agent?

  165. PDG1

    who needs a GUI?

    this saved me the grief of running utorrent with wine and now I’m thoroughly impressed with how much oomf there is behind rtorrent.

    best how-to I’ve read for an application in a long time.

  166. andrew

    does anyone know if you can copy the downloaded data from a torrent based on tracker?

    i know it can be done via watch directory, but tracker would be best.

    1. evidex

      I’m sure you don’t need me to tell you that this post is popular, but it’s reached the Top 10 referers on

      It was also a great help to me, in setting up my Ubuntu server to download torrents. I would have been lost without this.

      I love your blog, and follow it closely. Keep up the good work KMandla 🙂

  167. Pingback: URLTick::Comments for Howto: Use rtorrent like a pro « Motho ke motho ka botho

  168. Pingback: rtorrent demands on very old hardware « Motho ke motho ka botho

  169. Allen Stiner

    you guys should get a seedbox with rtorrent and a webgui running on it like i did from they even setup the box instantly when i paid via paypal.

  170. Pingback: Easy on the eyes: rtorrent-extended « Motho ke motho ka botho

  171. Pingback: How To Compile rTorrent From SVN In Ubuntu Gutsy Gibbon | All Free For You

  172. JP Senior

    I figure somebody might make use of a working rtorrentrc that works behind packeteers with encryption. I’ve been rocking rtorrent since it was released, and a simple config works for me.

    My router DNATs ports 28533 for DHT and a small port range for regular bittorrent data. is the IP address of my internal server. I don’t know how rtorrent deals with the tos byte so assuming 00100000 for IP Precedence 1, on my network is ‘bulk traffic’, tos maps out to ’32’.

    (For linux ISOs only!)

    encryption = allow_incoming,try_outgoing,enable_retry
    dht = auto
    dht_port = 28533
    port_range = 28600-28610
    ip =
    bind =
    directory = /home/user/download
    upload_rate = 50
    tos = 32
    session = /home/user/download/torrent

  173. rtorrent

    #bind =

    #ip = a.b.c.d
    #ip = hostname

    port_range = 55555-55555

    #port_random = no

    #check_hash = yes

    directory = /media/ntfs/Dvd/

    session = ~/rtorrent/session/

    #http_proxy = url

    #encoding_list = encoding

    encryption = allow_incoming, try_outgoing, enable_retry

    #peer_exchange = yes

    schedule = watch_directory,120,120,load_start=~/rtorrent/torrents/*.torrent
    #schedule = tied_directory,120,120,start_tied=
    #schedule = untied_directory,120,120,close_untied=

    #schedule = low_diskspace,120,120,”close_low_diskspace=200M”

    upload_rate = 1
    #download_rate = 0

    #min_peers = 15
    #max_peers = 20

    #min_peers_seed = 1
    #max_peers_seed = 1

    max_uploads = 1

    #max_uploads_div = value
    #max_downloads_div = value

    #max_uploads_global = 1
    #max_downloads_global = 200

    #enable_trackers = yes
    #tracker_dump = filename
    #tracker_numwant = 64

    #use_udp_trackers = yes

    dht = auto
    dht_port = 55554
    #dht_add_node = host[:port]

    #http_capath = path
    #http_cacert = filename

    #max_file_size = -1
    #split_file_size = -1
    #split_suffix = .part

    hash_read_ahead = 8
    hash_interval = 10
    hash_max_tries = 5

    #safe_sync = no

    #max_open_files = 128
    #max_open_sockets = 128
    #max_open_http = 32

    #max_memory_usage = 1024M
    #send_buffer_size = 3358720
    #receive_buffer_size = 3358720

    #umask = 0022
    #cwd = directory

    #session_on_completion = yes
    #session_lock = yes
    #session_save = yes

    #tos = default|lowdelay|throughput|reliability|mincost
    #tos = hex

    #handshake_log = yes

    schedule = snub_leechers,30,30,”snub_leechers=10,5,1M”
    schedule = ban_slow_peers,120,120,”ban_slow_peers=5,2K,64K,2,128K,3,1M,5″

    system.method.set_key =,unban,”d.unban_peers=”
    system.method.set_key =,unsnub,”d.unsnub_peers=”

  174. calmera

    When I am out off reach of ssh I use my iphone to email myself the torrent url.
    Then procmail picks it up and saves it to my watch directory.

    SUBJECT=`formail -zxSubject:`

    :0 c
    * ^Subject:.*http*
    | wget –directory-prefix=/media/Torrents $SUBJECT

    Works great!
    For better security one can probably add some more filters.

    At first I tried to email the actual torrent file, but rtorrent didnt like files saved from an iphone.


    1. calmera

      Email several torrent links in an email with subject “Torrent”

      :0 bc
      * ^Subject:.*Torrent
      | wget –directory-prefix=/media/Torrents -i –


  175. malakas

    I don’t know if it’s a bug or a “feature” but while rtorrent works mostly well, sometimes it will present a torrent as Inactive and will remain so. There is no way to start it, ctrl-s doesn’t work, at least under Screen. The only remedy is to delete the torrent and start over again, checking the files that failed to download before.


      Ctrl-S and Ctrl-Q typically are mapped to the tty “stop” and “start” signals (pause output and unpause output); in order to make them available to “rtorrent”, you have to unset them first via: “stty start undef stop undef”.

      Another note: even when ^S and ^Q are available to “rtorrent”, and the torrent is inactive, before pressing ^S to start it I have to press ^K (stop torrent) first; I don’t know why.

      Here is my own “start_rtorrent” script. Note that I don’t use “screen” in this case, I use “dtach”; if there is no socket named “/tmp/rtorrent_session”, “dtach” starts it; if there is one, then “dtach” connects to the running session. “dtach” is a lighter (i.e. no multi-windows which suits me fine in this case) version of “screen”.

      stty start undef stop undef
      cd ~/downloads/torrents
      exec dtach -A /tmp/rtorrent_session -Ez rtorrent

    2. Phillip White

      A lot of the time this is due to too many files being opened. do a ulimit -a to see:
      open files (-n) 1024
      Use ulimit -n 4096 or whatever you feel appropriate. Keep in mind that the more files opened the more RAM is needed.

  176. Pingback: Top 10 torrent clients for linux « a non-geek's blog

  177. Pingback: rTorrent wont download

  178. Pingback: eightcell :: nerdy randomness with a bit of meh

  179. Pkwok


    I need some help with DHT. I’m running Lenny Debian on nslu2. I did apt-get update rtorrent. But I still get the below error.

    NAS:~# rtorrent
    rtorrent: Error in option file: ~/.rtorrent.rc:86: Command “dht” does not exist.

    I wonder if the rtorrent is too old to support dht. Is there a way to tell the version ? How do I get the latest Debian rtorrent ?

    # 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.

    # Maximum and minimum number of peers to connect to per torrent.
    min_peers = 40
    max_peers = 400

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

    # Global upload and download rate in KiB. “0” for unlimited.
    download_rate = 0
    upload_rate = 20

    # Default directory to save the downloaded torrents.
    directory = /usbExt/torrent

    # Default session directory. Make sure you don’t run multiple instance
    # of rtorrent using the same session directory. Perhaps using a
    # relative path?
    #session = ./session
    session = /usbExt/torrent

    # Watch a directory for new torrents, and stop those that have been
    # deleted.
    #schedule = watch_directory,5,5,load_start=./watch/*.torrent
    #schedule = untied_directory,5,5,stop_untied=
    schedule = watch_directory,5,5,load_start=/usbExt/torrent/*.torrent
    schedule = untied_directory,5,5,stop_untied=/usbExt/torrent/*.torrent

    # 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,50M,300″

    # The ip address reported to the tracker.
    #ip =
    #ip =

    # The ip address the listening socket and outgoing connections is
    # bound to.
    #bind =
    #bind =

    # Port range to use for listening.
    port_range = 49005-49010

    # 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,try_outgoing,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 = auto

    # UDP port to use for DHT.
    #dht_port = 49011

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

    # Interval between attempts to check the hash, in milliseconds.
    hash_interval = 10

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

    # Read UTF chinese characters
    encoding_list = UTF-8

  180. RosenRed

    Excellent guide, congratulations!

    I have one question that was already asked above (by ibob)but never answered, so I figured I could try once more.

    Let’s say I have a torrent with 20 files and I choose to download only one of them. I set everything else to off and rtorrent downloads the one I selected. However, when I look into the destination directory, I see all the files with their proper size (filled with zeros).

    Now I understand that it needs to pre-allocate the space for the download, but is there a way to do it only for the files I select?


      It’s quite possible that the files do not occupy any space at all, even if they seem to be filled with zeroes. Check the actual disk space taken, using ‘du -sm’ or ‘du -sk’ (megabytes or kilobytes, depending on the torrent you download).

    2. trip

      I know there is a script out there that searches for files like that and deletes them, if you run that as a cron job it should take care of your problem.

  181. Pingback: No joke: A full Gnome desktop on 105Mb « Motho ke motho ka botho | Don Bishop's Blog dweb98

  182. Ben

    many thanks for the information. I am trying to get it installed on a centos but no luck yet. the rpm got some dependency issues. looks like i have to compile it.

  183. swwing17

    Very confused. The instructions make it seem like to download a torrent, you already have to have the torrent. That doesn’t seem to make any sense. Why would I want to download something that I already have? Are you talking about seeding (uploading) to others? I would like to know how to get (download, own, or possess) a torrent (that I don’t already have) from a torrent website, like Piratebay, etc.

    1. whiskthecat

      You can retrieve the torrent file with a web browser. You then give that torrent file to rtorrent.

  184. whiskthecat

    Just posting to let everyone know that utorrent has recently been released as a linux binary, no longer requiring wine to run. It still uses more resources than rtorrent and is closed source, but I will mention it here because I needed SOCKS proxy support and noticed there were some other comments also seeking this feature. If anyone knows how to get SOCKS peer support in rtorrent please let me know.

  185. Manuel

    i needed something to be able to run on a remote shell.

    Got it going within minutes. Now it will not only run remote, but will replace Ktorrent on my Desktop.

    Thank you, Cheers

  186. Pingback: rtorrent: Needs no introduction … again | Inconsolation

  187. Pingback: rTorrent: download torrents the geek’s way | Regular Expressions

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s