ftpcopy - mirror or copy files from a FTP server
SYNOPSIS
ftpcopy ftp://host[:port]/directory [local-directory]
or
ftpcopy host[:post] /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
Login options
--tries=NUMBER
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.
--account=ACCOUNT
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.
-p, --pass=PASSWORD
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.
-u, --user=NAME
Use NAME to login on the ftp server. The default
is `anonymous'. Use an empty name to force to not
Options controlling file selection
-d, --directories-only
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).
-m, --max-days=NUMBER
Download only files modified in the last NUMBER
days.
-x, --exclude=WILDCARD
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 IN/EXCLUDE, below, for more information.
This option was added in version 0.3.0.
-i, --include=WILDCARD
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 IN/EXCLUDE, below, for more information.
This option was added in version 0.3.0.
Other options
--interactive
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.
-l, --loglevel=NUMBER
* 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.
--bps
Log transfer rates.
This option was added in version 0.3.9.
-L, --list-options=OPTS
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.
-n, --no-delete
Do not delete files. This influences the cleanup step,
it doesn't stop ftpcopy from deleting files during the
downloads.
--dry-run
Do not copy or delete files: Only show what would be
done.
This option was added in version 0.3.6.
-s, --symlink-hack
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.
-T, --timeout=SECONDS
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.
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.
--tolower
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
-R, --remove-dir
--keep-dir
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"
EXAMPLES
mirror cr.yp.to
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(1), ftpcp(1).
The homepage may be more up-to-date, see
http://www.ohse.de/uwe/ftpcopy.html.
Man(1) output converted with
man2html