ftpcopy

Section: User Commands (1)
Updated: 0.6.2

 

NAME

ftpcopy - mirror or copy files from a FTP server  

SYNOPSIS

ftpcopy ftp://host[:port]/directory [local-directory] or ftpcopy host[:port] /directory [local-directory]  

DESCRIPTION

ftpcopy copies a FTP site recursivly. It afterwards deletes all files in the local directory tree which were not found on the remote site. local-directory defaults to "." - the current working directory - if the -n (--no-delete) option is used. local-directory is not needed if the --interactive option is used. Otherwise you must provide a local-directory argument.  

OPTIONS

 

bsection

Use NAME to login on the ftp server. The default is `anonymous'. Use an empty name to force to not log in.
Use PASS as password to login on the ftp server. The default is `anonymous@invalid.example'. Use an empty password to enforce not sending any password.
Send ACCOUNT as the account name using the ACCT ftp command if the ftp servers asks for one.
ACCOUNT in ftp speak is some kind of sub account in some other terminologies. If you don't understand what it means you have a good chance to never need this option anyway. If you think you need it please try the -u option first.
Number of tries to connect and log in. The default is 1, meaning that ftpls will give up after the first error.
This option was added in version 0.3.0.
ftpcopy will sleep for NUMBER seconds after a try to connect or login has failed. The default is 5, a zero is treated as one, and abuse (especially together with --tries) is likely to annoy the server administrator.
This option was added in version 0.4.5.
Only use IPv4, even is IPv6 is available. This option effectively disallows the use of IPv6, except for DNS queries.
This option was added in version 0.6.0.
Only use IPv6, even is IPv4 is available. This option effectively disallows the use of IPv4, except for DNS queries.
This option was added in version 0.6.0.

 

bsection

this controls the amount of logging done: 0: nothing except warnings and error messages 1: downloads and deletes 2: links/symlinks created, files we already got 3: useless stuff
The default is 1.
Log transfer rates.
This option was added in version 0.3.9.
Report progress to the standard error output (file descriptor 2).
This will print a report of the download every second: a short form of the file name, the bytes got and expected and the percentage received.
This option was added in version 0.6.0.

 

bsection

Download only files modified in the last NUMBER days. Locally existing copies of the not downloaded files will be kept.
Download only files up to BYTES bytes length. Locally existing copies of overlong files will be deleted during the clean-up step.
This option was added in version 0.5.1.
Exclude files and directories matching WILDCARD (note that this means shell style wildcards, not regular expression like those of grep).
You can repeat this option as often as you want. You can intermix it with the -i option.
See below, for more information.
This option was added in version 0.3.0.
Include files and directories matching WILDCARD. You can repeat this option as often as you want. You can intermix it with the -x option.
See below, for more information.
This option was added in version 0.3.0.
Do not compare file sizes when checking the remote file has to be downloaded.
This option was added in version 0.4.4.
Do not compare file modification times when checking the remote file has to be downloaded. This option may be combined with --ignore-size, in which case a file will never be downloaded regardless of changes in file size or modification time. In other words: ftpcopy will not download any updates.
This option was added in version 0.4.4.
Descend at most LEVEL directories deep. 0 means do not enter sub directories at all, 1 means enter sub-directories, but not their sub-directories, and so on. The default is 2^32-1, meaning enter all.
This option was added in version 0.5.2.

 

bsection

Do not delete files. This influences the cleanup step at the end, when ftpcopy removes files not found on the server. It doesn't stop ftpcopy from deleting files when it detects something in it's way during a download.
Do not delete more then COUNT files. This option may be useful to limit the impact of a tempoary loss of files on the server. The default is 0, meaning unlimited. This, too, only influences the cleanup step.
This option was added in version 0.4.5.

 

bsection

Only create the directory hierarchie, do not download files. Any file in the tree will be deleted unless the -n option is also given. Note: if the -s option is also given then even symbolic links to files will be created (without the files, of course).
Do not copy or delete files: Only show what would be done.
This option was added in version 0.3.6.
Timeout to use for network read/write and connect operations. The default is 30 seconds and is usually sufficient.
This option was added in version 0.3.8.
Limit the transfer rate of file downloads to about that many bytes per seconds. The implementation is crude and simple, by sleeping up to one second between network reads, and therefore does not even try to limit the rate exactly to that number. On the other hand it usually works and is unlikely to break things by causing timeouts.
This option was added in version 0.4.7.
This option tells ftpcopy to ignore any directories given on the command line, and to read commands from the standard input. Each command consists of two lines, the first being a directory on the remote server, and the second a local directory.
ftpcopy will print an END-OF-COPY line after each operation.
This option was added in version 0.3.6.

 

bsection

or "things you may need in a less than perfect world":

Do directory listings in ASCII mode instead of binary mode. Use this option if the FTP server is unable to correctly list directories in binary mode, for example, if you see a message like this (outside this manual page this usually comes on one line):
  ftpcopy: fatal: received unwanted answer to LIST:
  426 Data connection: Illegal seek.
This option was added in version 0.5.2.
Add OPTS to LIST command.
This allows to pass arbitrary options to the FTP servers LIST command. Note that ftpcopy does not cope well with recursive directory listings.
This option was added in version 0.3.0.
Deal with symbolic links. This is only useful to mirror sites which create listings through /bin/ls. This will fail if a file name in a link contains a ` -> ' sequence.
Do not use the poll() system call even if it's available, but use select(). This allows ftpcopy to be used together with the runsocks program from the socks5 reference implementation. Please note that you'll need a directly reachable name server anyway, as the DNS library in use does not support SOCKS (you can always use IP addresses).
This option was added in version 0.3.8.
Use the MDTM FTP command to determine file modification time.
The default is to take the times from the directory listings. This doesn't work if the server implements an inferior listing format (most do) and doesn't send time stamps in universal coordinated time (UTC).
This option makes ftpcopy send a MDTM command for any file it might want to download. The drawback is that this eats performance: ftpcopy usually sends just one command for a complete directory its traverses. With the --mdtm option it has to send an additional command for any file.
This option was added in version 0.3.10.
Allow data connections to the address IP4.
Normally ftpcopy only accepts data connections to the addresses of the host it connected to. The list of addresses contains the IP addresses of the host, as returned by the DNS query, or the IPv4 address of the host, in case an IPv4 address was given on the commandline.

This option allows to add one or more IP addresses, separated by commas, to the internal list. It may be given more than once.

You may want to use this option if you are behind some kind of machine (gateway) doing NAT (network address translation) or maquerading and ftpcopy prints an error message containing "illegal redirect by FTP server".

Note: If you are not behind a NAT gateway, then do not use this option without thinking: FTP redirects may be used to launch denial of service attacks against innocent targets.

The environment variable FTPCOPY_ALLOW_PASV_IP has the same function.
This option was added in version 0.6.1.
Do not try to resume downloads.
The REST command, needed to resume a failed download, is badly specified and is likely to be misinterpreted and -implemented. Use this option in case of trouble.
This option was added in version 0.6.0.
Change all local file names to lower case.
Use this only if you are absolutely sure that the remote side doesn't contain any files or directories whose names collide with each other. Otherwise this will waste bandwidth.
This option was added in version 0.3.8.

 

REMOVED OPTIONS

These options have been added in version 0.3.0 and removed in 0.3.7. --keep-dir made ftpcopy keep a local directory even if it had been replaced by a link to an other directory or a file, --remove-dir did exactly the opposite. --keep-dir was the default for historical reasons.
The current behaviour is like that of --remove-dir: ftpcopy creates a copy of the remote ftp site.
 

IN/EXCLUDE

In- and exclude lists are internally mixed together, keeping the order in which they were given. The list starts with an implicit `include *'. ftpcopy honors the last match. The wildcard matching is done against the full remote path of the file. The / character has no special meaning for the matching: it is treated like any other. Note: you have to include top level directories of files or directories you want to include. Something like this will not work:
    --exclude "*" --include "/w/h/e/r/e/file.c" You need to include /w, /w/h and so on.  

EXAMPLES

 

bsection

        ftpcopy  \
        --exclude '*.cdb'  \
        --exclude '*software/precompiled*' \
        cr.yp.to / /private/file/0/mirror/cr.yp.to
This means: i'm not interested in .cdb files. precompiled stuff is also not downloaded. the host to connect to is cr.yp.to. the remote directory is /. and /private/file/0/mirror/cr.yp.to is the local directory.  

AUTHOR

Uwe Ohse, uwe@ohse.de  

SEE ALSO

ftpls.htmlftpls(1) ftpcp.htmlftpcp(1) The homepage may be more up-to-date, see
http://www.ohse.de/uwe/ftpcopy.html.


 

Index

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
bsection
bsection
bsection
bsection
bsection
bsection
REMOVED OPTIONS
IN/EXCLUDE
EXAMPLES
bsection
AUTHOR
SEE ALSO
blog comments powered by Disqus