Rtorrent is a lightweight and robust bitorrent client. It is written in C++ and is ncurses-based (i.e. it runs within a terminal). This makes it ideal for running with either GNU Screen or tmux on a remote client in conjunction with opensssh.
Although rtorrent is not the official #! bitorrent client (Transmission is installed by default) it powers the distributions official seedboxes.1)
Rtorrent is available in the Debian repositories, so installation requires only the following command:
sudo apt-get install rtorrent
If you plan on using only rtorrent with your #! installation you may wish to remove the default bitorrent client, Transmission–also identified as transmission-gtk.
Configuration of rtorrent is done by editing ~/.rtorrent.rc
Useful guides can be found at:
A Few Extras
#Scheduled rates schedule = throttle_1,01:00:00,24:00:00,download_rate=0 schedule = throttle_2,01:00:00,24:00:00,upload_rate=300 schedule = throttle_3,07:00:00,24:00:00,download_rate=300 schedule = throttle_4,07:00:00,24:00:00,upload_rate=50
The above schedules different throttles for different times of the day. In the example at 1:00am (24:00 clock), download rate is set to 0 (which is “off” i.e. unlimited download). Also at 1:00am the upload is set to 50. At 7:00am they resume their normal rates of 50up/300down.
# Fine-grained throttles throttle_up=slowupload,20 throttle_down=slowdownload,50 throttle_up=sloweverything,20 throttle_down=sloweverything,50
Per-torrent throttle definitions. The above creates three different throttles (slowupload,slowdownload,sloweverything) which can be toggled through on a non-active torrent.
#A more clever active view
schedule = filter_active,30,30,"view_filter = active,\"or={d.get_up_rate=,d.get_down_rate=}\""
By default the active view (available by pressing number 9) isn't very useful. This recreates it based on activity in the last 30 seconds.
#isos schedule = watch_directory_2,10,10,"load_start=~/isotorrents/*.torrent,d.set_directory=/media/redundant/isos" schedule = tied_directory_2,10,10,start_tied= schedule = untied_director_2,5,5,stop_untied= #data schedule = watch_directory_3,10,10,"load_start=~/datatorrents/*.torrent,d.set_directory=/media/redundant/data" schedule = tied_directory_3,10,10,start_tied= schedule = untied_directory_3,5,5,stop_untied= #photos schedule = watch_directory_4,10,10,"load_start=~/phototorrents/*.torrent,d.set_directory=/media/redundant/photos" schedule = tied_directory_4,10,10,start_tied= schedule = untied_directory_4,5,5,stop_untied=
The above illustrates how to watch multiple directories and move completed downloads from torrents in each directory to a specific location. For example, here torrents from the ~/isotorrents directory will be saved to /media/redundant/isos whereas torrents placed in the ~/datatorrents directory will be saved to /media/redundant/data.