---
name: "apt-spy"
section: "8"
platform: "linux"
package: "apt-spy"
version: "3.2.2-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/apt-spy"
---

# apt-spy(8)

program to generate a /etc/apt/sources.list.d/apt-spy.list file

## NAME

apt-spy - program to generate a /etc/apt/sources.list.d/apt-spy.list file

## SYNOPSIS

**apt-spy** -d ***distribution***  \[ **-a** *area* \] \[ **-c** *config* \] \[ **-e** *number* \] \[ **-f** *file* \] \[ **-i** *file* \] \[ **-m** *mirror-list* \] \[ **-o** *output-file* \] \[ **-p** *proxy* \] \[ **-s** *country-list* \] \[ **-t** *time* \] \[ **-u** *update-URL* \] \[ **-w** file \] \[ **-n** number \] \[ **-h**  \] \[ **-v**  \] \[ **update** \]

## DESCRIPTION

This manual page briefly documents the **apt-spy** command.

**apt-spy** is a program that tests all of the Debian archive mirrors the user specifies for bandwith and writes, by default, to */etc/apt/sources.list.d/apt-spy.list* the fastest server.

The user can select which of the many Debian sites to benchmark by geographical location.

**apt-spy** does not need to be run by root if the user provides a configuration file, a place where to store the mirror list and an output file. See examples for more details.

## OPTIONS

- **-d** *distribution*

  Debian distribution to use. Sensible values would be \`stable', \`testing' or \`unstable'. Distribution names can also be used. This value is directly used in the generated sources.list, and is required unless updating.

- **-a** *area*

  This will cause only servers in the specified area to be benchmarked.  By default, valid values for *area* are \`Africa', \`Asia', \`Europe', \`North-America', \`Oceania' and \`South-America'. It is very easy to define your own areas or subset of servers to benchmark. For further details see [**apt-spy.conf**(5)](/apt-spy.conf/5.md).

- **-c** *config*

  configuration file to use instead of */etc/apt-spy.conf.*

- **-e** *number*

  *\`early finish'.* *Stop benchmarking after number of servers have been completed.* *Act as if all servers were benchmarked upon completion.*

- **-f** *file*

  *file to grab from the Debian servers.* *By default* **apt-spy** *will test the servers by getting part of the* *\`ls-lR' file in the base of the Debian tree on the mirror.* *This tells* **apt-spy** *to get* **file** *instead.*  *It is assumed that this file is also relative to the Debian base directory.*

- **-i** *file*

  *use* **file** *as input for* **apt-spy***.*  *You should generate this input file using the -w option.*

- **-m** *mirror-list*

  *where to load the mirrors list from or where to save it to.* *The default location is* **/var/lib/apt-spy/mirrors.txt***.* *Using this option allows you to specify a different location.*  *When updating, this defines where the updated mirrors list will be saved.*

- **-o** *output-file*

  *location for the new* **sources.list***.* *By default the new file is created as* **/etc/apt/sources.list***.*

- **-p** *proxy*

  *use proxy as a proxy server.* *This should be specified as \`hostname:port'.*

- **-s** *country-list*

  *A comma-separated list of countries to benchmark. At the moment, this cannot* *be used with the "area" option.*

- **-t** *time*

  *how long (approximately) in seconds to download for.* *By default time is 15 seconds.* *How long the benchmark actually downloads for varies due to the way libcurl* *works.* *With the default 15 seconds, the benchmark generally takes beween 10 and 25* *seconds.* *Each server has potentially two protocols (ftp and http) so roughly one* *minute per server would be a reasonable estimate of how long it should take.* *Be aware that this does vary considerably, and that benchmarking any more* *than a very few servers takes considerable time (possibly several hours for* *\`-a All').*

- **-u** *update-URL*

  *specify custom URL to get an updated mirrors list from.* *This can be http, ftp, file, or any other URL type supported by libcurl.*

- **-w** *file*

  *write a number of top servers to file in a format suitable for use with*  *the -i option. The number of servers to output can be specified with the -n*  *option, and defaults to 5.*

- **-n** *number*

  *the number of top servers to write with the -w option.*

- **update**

  *connect to* **http.us.debian.org** *and download the mirror list to* **/var/lib/apt-spy/mirrors.txt***. The -u or -m options may be used* *to respectively specify a different URL for the mirrors list or a different*  *location for the downloaded file.*

- **-v**

  *output a version number.*

- **-h**

  *print a short usage message.*

## EXAMPLES

*Non root usage:*

*apt-spy -d stable -a Europe -m ./mirror.txt -o apt-spy.list -c apt-spy.conf*

*Above command tests European mirrors for stable Debian release saving* *http://http.us.debian.org/debian/README.mirrors.txt into mirror.txt, writing source file* *into apt-spy.list using configuration from apt-spy.conf. Note that not root users need to* *specified all these parameters.*

*Updating mirror list file:*

*apt-spy*  *update*

*Creating the /etc/apt/sources.list.d/apt-spy.list file:*

*apt-spy -d stable*

## SEE ALSO

[**sources.list**(5)](/sources.list/5.md), [**apt-spy.conf**(5)](/apt-spy.conf/5.md), [**apt**(8)](/apt/8.md).

## AUTHOR

**apt-spy** *and this manual page was written by Steven Holmes* *\<steg@bsdeviant.org\> and updated by Stefano Canepa \<sc@linux.it\>.*

*The original version of* **apt-spy** *was written by Danny Rodriguez* *\<messiah@optonline.net\>.*

*This version is a total rewrite.*
