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 Bit-
     Torrent 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  in-
	    tact  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-or-
	    der block storage. This option is only effective when initially cre-
	    ating 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 down-
	    load 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 dynam-
	    ically 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. Frac-
	    tional 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 explic-
	    itly 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 down-
	    loading. A value of zero (0) will turn this  off  and  seed  indefi-
	    nitely 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 back-
	    ground.  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 con-
	    nections.  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 re-
	    quest 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, re-
	    questing 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 ellip-
	    sis 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 ad-
	    min 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  connec-
	    tions.  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 simi-
	    lar, 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  con-
	    trol, and client management. Using a colon at the end of the parame-
	    ter (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) consis-
	    tently 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  inter-
	    preted. 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 com-
	    pletion 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 compati-
	    bility 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  distribu-
	    tion. 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 re-
	    sulting 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  "good-
	    stuff.mp3"	will  be  specified  inside the created torrent metainfo
	    file.

	    When a directory name is used, the specified directory  is	NOT  in-
	    cluded  in the torrent metainfo file, just the files and/or directo-
	    ries 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  exam-
	    ple.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.  Tog-
     gle 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  press-
     ing 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	informa-
     tion. 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  immedi-
     ately, 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 rec-
     ognize 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  bittor-
     rent,  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  proto-
     col 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 deter-
     mines 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  inter-
     face),  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 connec-
     tions 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 ex-
     pires. (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.1.quarterly>

home | help