Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ctorrent(1)		       Enhanced	CTorrent		   ctorrent(1)

NAME
       ctorrent	- an enhanced peer to peer (P2P) command line client.

SYNOPSIS
       ctorrent	[-cvfaTd] [-A user-agent] [-b bf-filename] [-C cache-size]
		[-D dl-rate] [-E ratio]	[-e hours] [-I out-ip] [-i in-ip]
		[-M max-peers] [-m min-peers] [-n file-num,...]	 [-P peer-id]
		[-p in-port] [-S server-host:port] [-s save-file|dir]
		[-U ul-rate] [-u trkr-num|URL] [-X exit-cmd] [-z slice-size]
		torrent-filename
       ctorrent	-x torrent-filename
       ctorrent	-c [-x]	torrent-filename
       ctorrent	-t -s filename -u URL [-p] [-l piece_len] [-c comment]
		file-or-directory

DESCRIPTION
       This is an enhanced version of the command line CTorrent	peer to	peer
       BitTorrent client for unix-like environments. High performance with
       minimal system resources	and dependencies is a priority.

OPTIONS
   General Options
       -c     Check pieces only, don't download.

	      Hash-checks  all	pieces	of  the	 torrent  to verify completion
	      status and exits.	Use this when you want to verify  that	you've
	      successfully  downloaded	the  complete torrent, or to make sure
	      the files	are intact  after  a  system  crash.  This  option  is
	      normally	used  alone,  but can be used with -x for an automated
	      completion check.

       -x     Decode metainfo (torrent)	file only, don't download.

	      Displays the torrent information and contents from the  metainfo
	      (.torrent)  file.	No piece checking or downloading is performed.
	      This option is normally used alone.

       -v     Verbose output (for debugging).

	      Generates	[a lot of] extra output	while CTorrrent	is running.

   Downloading Options
       -A user_agent
	      (default	=  "Enhanced-CTorrent/dnh3.1")	Set   the   User-Agent
	      header.

	      Specify  an alternate user-agent header. This can	be useful if a
	      tracker is  set  up  to  only  allow  client  programs  that  it
	      recognizes.

       -a     Preallocate files	on disk.

	      Use  this	 if  you  are  concerned  about	 file fragmentation or
	      out-of-order block storage. This option is only  effective  when
	      initially	 creating  the	files  and  will cause startup to take
	      longer as	each entire  file  is  written	in  order  to  reserve
	      physical	disk  space.  Note  that all files will	be created and
	      preallocated even	if  the	 -n  option  is	 used  to  download  a
	      particular file.

       -b filename
	      (default = torrent+".bf")	Specify	bitfield save file name.

	      Piece  completion	 status	is saved to a bitfield file on exit if
	      download has not completed. On  startup  the  file  is  read  to
	      determine	 (and  check)  available  pieces. The -b option	can be
	      used  to	specify	 a  file  name	other  than  the  default.  Be
	      consistent  and  careful	with  this option; it is generally not
	      needed.

       -C cache_size
	      (default = 16MB) The cache size units in MB.

	      Specify  the  maximum  amount  of	 memory	 to  use  for  caching
	      downloaded slices. The program may use less than this; the cache
	      size  is	dynamically  tuned  based  on  the download and	upload
	      rates. You  may  need  to	 use  this  option  if	running	 on  a
	      memory-constrained system	such as	a router or SAN	device.	If you
	      use  a  value of 0, no memory cache will be used but the process
	      will be more disk-intensive.

       -D rate
	      Maximum bandwidth	download rate (unit KB/s).

	      Specify a	download bandwidth limit for this torrent. The	client
	      will  maintain  its short-term average download rate at or below
	      this value.

       -d     Daemon mode (fork	to background).

	      The client will detach itself  from  the	terminal  session  and
	      become  a	background process, closing stdin, stdout, and stderr.
	      There is no way to bring	it  back  into	the  foreground	 of  a
	      session  later; if you want to monitor or	manage the client then
	      either use the CTCS option ( -S )	as  well  or  run  the	client
	      under screen instead of using -d.

	      If  this	option	is  specified  twice  (	 -dd ) then redirected
	      standard I/O descriptors will not	be closed.

       -E num Exit after seeding to num	ratio (UL:DL).

	      Specify a	desired	"seed ratio". After downloading	completes, the
	      client will continue seeding (uploading) until your total	upload
	      volume divided by	 your  download	 volume	 equals	 this  number.
	      Fractional  values  (such	 as 1.5) are allowed. It is considered
	      polite and fair (and required by some  tracker  sites)  to  seed
	      until  your ratio	is at least 1:1. There is no default value, so
	      this must	be  explicitly	used  on  the  command	line  if  it's
	      desired.

       -e int (default = 72) Exit after	seeding	int hours.

	      Indicate	how  long  (in	hours)	you  want  to "seed" (continue
	      uploading) after download	has completed. It is considered	polite
	      and fair (and required by	some tracker sites) to seed  for  some
	      time  after  downloading.	A value	of zero	(0) will turn this off
	      and seed indefinitely unless the -E ratio	option is also used.

       -f     Force saved bitfield or seed mode	(skip hash check at startup).

	      Perform a	fast startup by	skipping the initial  (or  background)
	      hash  verification  of  the  files. This option is not generally
	      recommended since	the client now performs	initial	hash  checking
	      in  the  background.   Use this option only if CTorrent was shut
	      down cleanly when	last downloading  this	torrent	 and  you  are
	      absolutely  certain  that	 the  bitfield	(if  download  is  not
	      complete)	and data files are intact and correct.	To emulate the
	      old  behavior  of	 hash-checking	all  pieces  before  beginning
	      download or seeding, use -f along	with the -c option.

       -I ip  Specify public/external IP address for peer connections.

	      Specify the IP address which the tracker should give out to peer
	      clients in order to connect to you. This is normally needed only
	      if you are behind	a NAT and on the tracker's local network.

       -i ip  (default	=  all/any)  Listen  for  connections on a specific IP
	      address.

	      Specify the IP address on	which you want to listen for  incoming
	      connections.  This  is  only  useful if your system has multiple
	      network interfaces and  you  want	 to  restrict  access  or  run
	      multiple clients on different interfaces.

       -M max_peer
	      (default = 100) Maximum peer count.

	      Set  the	maximum	 allowable number of peer connections. If this
	      number is	reached, no  new  connections  will  be	 initiated  or
	      accepted.	If memory or upload bandwidth are constrained, you may
	      want to use this option to specify a lower value.

       -m min_peer
	      (default = 1) Minimum peer count.

	      Set  the	desired	 minimum  number  of  peer connections.	If the
	      number falls below this  value,  the  client  will  contact  the
	      tracker to request more peers.

       -n file_num,...
	      Specify the file number(s) to download.

	      Specify a	priority order for downloading files in	the torrent. A
	      comma-separated	list   of  file	 numbers  and  groups  can  be
	      specified; the file numbers can be seen with the -x option.  The
	      client	will	preferentially	  request    pieces   of   the
	      highest-priority files, requesting a piece from a	lower-priority
	      group if a peer has no such pieces.

	      A	group may consist of:

		     * a file number

		     * a range of file numbers (x-y)

		     * a combination of	file numbers and ranges	separated with
		     plus (+) signs

		     * an asterisk (*) or 3-dot	ellipsis (...)

	      If an asterisk (remember to quote	it on the  command  line!)  or
	      ellipsis	is  used,  the	client	will  download	and  seed  the
	      remainder	 of  the  torrent  once	 the  prioritized  files   are
	      completed;  this	is  similar  to	 the  previous behavior	of the
	      option. If no such  specification	 is  given,  the  client  will
	      download and seed	only the indicated files.

	      Examples:

	      -n 3   Download and seed only file 3.

	      -n 3+5+7,8-11
		     Download  files 3,	5, and 7 simultaneously, then download
		     files 8 through 11	simultaneously,	then stop  downloading
		     and seed all downloaded files.

	      -n 3-4,...
		     Download  files 3 and 4 simultaneously, then download and
		     seed all remaining	content.

       -P peer_id
	      (default = "-CD0301-") Set the Peer ID prefix.

	      Specify an alternate peer	ID prefix. This	can  be	 useful	 if  a
	      tracker  is  set	up  to	only  allow  client  programs  that it
	      recognizes. (The admin may not even realize it, so you may  want
	      to  try  contacting  them	 to  request  that  they  change their
	      configuration or add Enhanced CTorrent  to  the  list.)  If  you
	      receive  a  tracker  warning  message that your client is	out of
	      date,  try  using	 this  option  with  the  prefix  of   another
	      well-known client	program	(such as "-AZ2304-").

       -p port
	      (default = 2706 -> 2106) Listen on port.

	      Specify  the  TCP	 port  number  on which	to listen for incoming
	      connections. By default, CTorrent	starts at  2706	 and  searches
	      for  an available	port in	decreasing order until it finds	one or
	      exhausts all ports down through 2106.  The  behavior  with  this
	      option is	similar, but starting at the specified port number.

       -S host:port
	      Use CTCS server at host:port.

	      Maintain	a  connection  to CTCS for status reporting, bandwidth
	      control, and client management. Using a colon at the end of  the
	      parameter	 (as in	"-S localhost:2780:") will cause the client to
	      prompt for a password to send to CTCS when connecting.

       -s filename | directory
	      Download ("save as") to a	different file or directory.

	      Download to a different filename	or  top-level  directory  name
	      than what	is given in the	metainfo file.

       -T     Convert foreign filenames	to printable text.

	      Substitutes a hex	representation of any non-printable characters
	      in  filenames;  an  underscore will be inserted between any such
	      sequences	and regular text. This applies to printing the name of
	      the file as well as accessing it on disk,	so you need to use  it
	      (or  not)	consistently across multiple runs of the same torrent.
	      It does not apply	to names specified with	the -s option.

       -U rate
	      (Highly Recommended) Maximum bandwidth upload rate in KB/s.

	      Specify an upload	bandwidth limit	for this torrent.  The	client
	      will  maintain  its  short-term  average upload rate at or below
	      this value. See the Bandwidth  Limits  section  below  for  more
	      information.

       -u number | URL
	      Alternate	announce (tracker) URL.

	      Specify  an alternate tracker announce URL. The parameter	can be
	      the actual URL or	the number from	the list of alternates printed
	      when starting the	client or using	-x.

       -X command
	      Run the command upon download completion ("user exit").

	      Specifies	a "user	exit" command to run upon download completion.
	      The string  parameter  will  be  passed  to  the	sh  shell  for
	      execution;  see the system() man page for	further	clarification.
	      You will need to quote this string on the	command	line in	 order
	      to  identify  it	as  a  single  parameter  and  prevent special
	      characters from being interpreted. Some  substitution  sequences
	      beginning	 with  ampersand  (&)  are available; note that	it's a
	      good idea	to quote the sequence within the string	 so  that  the
	      substituted names	will be	quoted in the final command.

	      &d  will	be  replaced  by the name of the directory or filename
	      that contains the	downloaded data.

	      &t will be replaced by the name of  the  torrent	metainfo  file
	      (with path, if it	was specified that way to ctorrent).

	      &w will be replaced by the client's working directory.

	      Note  that  the fork() and system() system/library functions are
	      used for best portability. As a result, significant extra	memory
	      may be used while	the specified command is running.  Be  advised
	      to  use  this feature as a trigger mechanism to update a file or
	      run a short script that kicks off	a background task rather  than
	      for executing a longer task directly.

	      This  option  can	 also be used together with -c as an automated
	      completion check.	Normally the completion	command	 will  be  run
	      only if data has been downloaded;	this case is the exception.

       -z slice_size
	      (default	=  16,	max  128)  The download	slice/block size in KB
	      units.

	      Sets the size of	the  basic  unit  of  download.	 For  greatest
	      compatibility  with  other  peer	clients, use the default. This
	      value can	also affect the	 precision  with  which	 bandwidth  is
	      managed.

       torrent-filename
	      (Required) The file name of the torrent metainfo file.

   Options For Creating	A New Torrent
       -t     (Required) Create	a new torrent file.

	      Indicates	 that  you  want to create a new torrent. This must be
	      the first	option specified when creating a torrent.

       -s filename
	      (Required) Specify the metainfo file name.

	      Give the name of the metainfo file to be created.

       -u URL (Required) The tracker's URL.

	      Specify the tracker's announce URL. This usually	looks  similar
	      to "http://tracker.example.com:port/announce".

       -c comment
	      Define a comment/description.

	      Include a	comment	or description field in	the torrent file.

       -l piece_len
	      (default = 262144) The piece length in bytes.

	      Specify  the  piece  size	 for  your  torrent.  This  will  also
	      determine	the total number of  pieces  in	 the  torrent.	Larger
	      sizes  can be more efficient, but	smaller	sized pieces can speed
	      up initial distribution. Very informal research states that  the
	      optimum  number  of total	pieces in a torrent is roughly between
	      1200 and 2200. Common piece sizes	are  262144,  524288,  1048576
	      and 2097152.

       -p     Private (disable peer exchange).

	      Disable  the use of DHT, PEX, or other trackerless peer-exchange
	      methods by other clients when sharing this torrent.

       file-or-directory
	      (Required) A single file name or a single	directory that will be
	      used to create the torrent metainfo file.

	      When a file name is used,	how it's specified on the command line
	      will be how it's specified  within  the  torrent	metainfo  file
	      that's created.

	      For  example;  if	 you  use  "/tmp/music/goodstuff.mp3"  on  the
	      command line, then that  complete	 filespec  will	 be  contained
	      within  the  resulting torrent metainfo file (and	what's created
	      on the remote  leecher's	computer).  But	 if  you  are  in  the
	      "/tmp/music"  directory  and  only  use  "goodstuff.mp3"	on the
	      command line, then only "goodstuff.mp3" will be specified	inside
	      the created torrent metainfo file.

	      When a directory name is used, the specified  directory  is  NOT
	      included	in  the	 torrent  metainfo file, just the files	and/or
	      directories within that directory.

	      For example; to create a torrent file to seed all	of  the	 files
	      and directories found in the "/tmp/music"	directory, change into
	      the  "/tmp"  directory and then create the torrent file with the
	      -t option	using the "music" directory name on the	command	 line;
	      or enter "/tmp/music" while in any directory. Later, go into the
	      "/tmp/music" directory itself to actually	seed it.

EXAMPLES
       List the	contents of a torrent:

	      ctorrent -x example.torrent

       Verify download completion status (takes	a little time):

	      ctorrent -c example.torrent

       Download	or seed	a torrent using	default	options	(not recommended):

	      ctorrent example.torrent

       Download	 with  a  limit	 of  100KB/s, upload limit of 10KB/s, and seed
       until a ratio of	1.5:1 is achieved:

	      ctorrent -D 100 -U 10 -E 1.5 example.torrent

       Create a	torrent:

	      ctorrent	-t  -u	 http://tracker.example.com:6969/announce   -s
	      example.torrent file_or_dir_to_upload

RUNTIME	COMMANDS
       Several	commands  are  available  during  upload/download;  a  list is
       available by pressing ?	or h :

       Available commands:

       [Esc/0]	Operator menu		  m[+/-]   Adjust min peers count
       d[+/-]	Adjust download	limit	  M[+/-]   Adjust max peers count
       u[+/-]	Adjust upload limit	  C[+/-]   Adjust max cache size
       n	Download specific file	  S	   Set/change CTCS server
       e[+/-]	Adjust seed exit time	  v	   Toggle verbose mode
       E[+/-]	Adjust seed exit ratio	  Q	   Quit

       Command keys are	case-sensitive.	When  a	 command  key  is  pressed,  a
       prompt  or  current value is displayed. Prompts will suspend display of
       the status line while waiting for input,	though the client continues to
       run normally. Toggle and	numeric	commands briefly  suspend  the	status
       line display.

       Commands	shown with [+/-] following the key are numeric options and can
       be  adjusted  by	 pressing + or - repeatedly after the command key. The
       increment is increased after five  presses;  to	reset  it,  press  the
       command key again.

       Most  commands  use  the	 same letter as	the corresponding command-line
       option. Note that the bandwidth limit commands use the same letters but
       opposite	case.

OPERATOR MENU
       The 0 or	Esc command key	displays an operator menu with	more  advanced
       (or less	routine) options. All options on and beneath this menu require
       pressing	 Enter to submit the input. Pressing Enter alone will exit the
       menu.

       Operator	Menu
	Output Channels:
	 1) Normal/status:  stdout
	 2) Interactive:    stdout
	 3) Error/warning:  stderr
	 4) Debug/verbose:  stderr
	 5) Input:	    stdin
	Status Line Formats:
	 6)  0/6/18 [700/700/700] 0MB,11127MB |	0,15K/s	| 0,0K E:0,405
	*7) | S:0/10 L:6/7 C:0	R=15.92	D=0 U=16 K/s  seeding 48:57
	Other options:
	 8) View detailed status
	 9) Pause (suspend upload/download)
	10) Become daemon (fork	to background)
	11) Update tracker stats & get peers
	12) Restart (recover) the tracker session
       Enter selection:

       The first set of	options	allow  redirection  of	the  client's  various
       types  of console output	(or even input--use carefully!). Of particular
       use is the debug/verbose	channel, which can be directed to  a  file  to
       create  a  debug	 log (be sure to also enable verbose output with the v
       command key or CTCS).

       The second set of options is used to select  the	 status	 line  format.
       Since  the  actual  client status is used to generate the menu options,
       the operator menu display can also be used just to view	the  alternate
       status  information. An asterisk	( * ) indicates	the currently selected
       format.

       The next	two options provide a means  to	 view  more  detailed  current
       status  and  statistics	or to pause uploading and downloading (more or
       less immediately, unlike	the previous CTCS pause	function).

       Note that there is no "recovery"	 from  daemon  mode.  Use  CTCS	 (with
       daemon  mode)  and/or  "screen"	if  you	 want the client to run	in the
       background but need to manage or	monitor	it.

       The next	two options are	the same as the	corresponding actions in CTCS.
       The first performs an early tracker update.  The	 second	 restarts  the
       tracker session as if you had exited and	restarted the client. This can
       be  used	 to  recover if	the tracker appears to have suffered a failure
       and does	not recognize your client session.

USAGE NOTES
   Bandwidth Limits
       You should always specify an upload bandwidth limit.

       With the	most recent changes in the program, this "option" is not  just
       a  limit	 to  stay  under,  but	an  advisement	to the client as well.
       Enhanced	CTorrent now tunes its upload performance based	on the	limit.
       Without	a  limit,  the client has no idea how much bandwidth your line
       can support and so cannot perform this tuning. It is  now  possible  to
       achieve	better	upload	rates  with  a	limit than without. Due	to the
       tit-for-tat nature of bittorrent, this  can  also  indirectly  increase
       your  download  performance. If you just	want the client	to use as much
       upload bandwidth	as possible, then choose a limit that  is  10%	or  so
       less  than  the	available  upload  capacity of your line. ("Available"
       means not typically in use by other applications.)

       Note that limits	are specified in KB/s (kilobytes  per  second),	 where
       1KB  =  1024  bytes (8192 bits).	Your ISP likely	measures in "kilobits"
       (Kb, where 1Kb =	1000 bits or 125 bytes)	or "megabits" (1Mb  =  1000000
       bits or 122KB). Some of that [to	the tune of 20%	in some	cases] is used
       by the line protocol and	thus not available to you at all.

   Startup
       If  you	have  previously  started the torrent, CTorrent	will perform a
       hash-check of all pieces	(or pieces indicated by	the bitfield  file  if
       present)	 while	beginning  the	upload/download	process. This does not
       mean that it is starting	over--quite the	 opposite!  This  is  how  the
       client  determines which	pieces it already has so that they will	not be
       downloaded again	(and can  be  offered  for  uploading).	 This  process
       confirms	 the  pieces that you have even	if the files have been altered
       or recovered after a system crash.

   Status Line
       The status line that is output by the  client  has  changed  since  the
       original	and deserves some explanation.

       / 0/33/110 [672/672/672]	0MB,1130MB | 0,20K/s | 0,0K E:0,31 P:4/10
       - - -- ---  --- --- ---	--- ------   - --      - -    -	--   ----
       A B  C  D    E	F   G	 H     I     J	K      L M    N	 O     P

       A: Ticker; this character changes to indicate that the client is	running.
       B: Number of seeders (complete peers) to	which you are connected.
       C: Number of leechers (incomplete peers)	to which you are connected.
       D: Total	number of peers	in the swarm, as last reported by the tracker.
       E: Number of pieces of the torrent that you have	completed.
       F: Total	number of pieces in the	torrent.
       G: Number of pieces currently available from you	and your connected peers.
       H: Total	amount of data you have	downloaded.
       I: Total	amount of data you have	uploaded.
       J: Your current download	rate (20 second	average).
       K: Your current upload rate (20 second average).
       L: Amount of data downloaded since the last status line update.
       M: Amount of data uploaded since	the last status	line update.
       N: Number of tracker connection errors.
       O: Number of successful tracker connections.
       P: Completion ratio of current fileset (when -n is used).

       Additional  information	such  as  tracker  connection  status  may  be
       displayed at the	end of the status line when appropriate.

   Alternate Status Line
       A new status line format	is also	available via the operator menu.

       / S:4/8 L:4/5 C:1  R=5.85 D=42 U=16 K/s	79/100%	49:47  P:40/100% 2:41
       -   - -	 - -   -    ----   --	--	-- ----	-----	 ------- ----
       A   B C	 D E   F      G	    H	 I	 J   K	  L	    M	   N

       A: Ticker; this character changes to indicate that the client is	running.
       B: Number of seeders (complete peers) to	which you are connected.
       C: Number of seeders in the swarm (excluding yourself), as last reported	by the tracker.
       D: Number of leechers (incomplete peers)	to which you are connected.
       E: Number of leechers in	the swarm (excluding yourself),	as last	reported by the	tracker.
       F: Number of peer connection attempts in	progress.
       G: Your upload/download ratio.
       H: Your current download	rate (20 second	average).
       I: Your current upload rate (20 second average).
       J: Percent of the torrent that you have completed.
       K: Percent of the torrent currently available from you and your connected peers.
	  If you have the complete torrent, "seeding" is displayed instead of these percentages.
       L: Estimated download or	seed time remaining, in	hours and minutes.
       M: Completion and availability of current fileset (when -n is used).
       N: Time remaining to complete the current fileset (when -n is used).

       Additional  information	such  as  tracker  connection  status  may  be
       displayed at the	end of the status line when appropriate.

   Stopping CTorrent
       Besides	the  Q	command	 key  (equivalent  to  Ctrl-C but a nicer user
       interface), CTorrent can	 be  stopped  before  completing  download  or
       seeding	by  pressing  Ctrl-C  or sending the TERM signal ("kill	pid").
       This will tell the client to contact the	 tracker  to  send  its	 final
       statistics  and	advise	that it	is leaving the torrent.	Note that this
       could take a couple of minutes if the tracker is	 down  or  very	 busy.
       (Only  one  attempt  is	made,  so  the	client	will  exit even	if the
       connection fails.)

       If Ctrl-C or kill is used a second time,	the  client  closes  all  peer
       connections  and	exits without waiting for the tracker connection. This
       means that other	peers may still	attempt	to contact you	for  a	while,
       and  the	 tracker  may  not accept you back into	the torrent until your
       original	session	expires. (This could take up to	 a  couple  of	hours,
       depending on the	tracker.)

       In  either  case,  this is a clean shutdown of CTorrent.	All downloaded
       data is written to disk before exiting. (Though	only  complete	pieces
       really  count  if  the torrent is restarted, as there is	no way to know
       which blocks are	missing	from partial pieces.)

SEE ALSO
       ctcs(1) screen(1) system(3) fork(2)

Enhanced CTorrent		  2008-06-15			   ctorrent(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ctorrent&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help