Memory hunger
ftpcopy needs about 532 KB of dynamically allocated memory to
mirror my ftp server (874 files, 48 MB), and about 5.5M to mirror
the /usr/local area on my ftp server (11989 files, 1.1 GB).
mirror needs more than 3 MB for my ftp server, and more than
11 MB for the /usr/local area.
Speed
ftpcopy needed about 110 seconds to copy my site. Subsequent
runs which don't need to copy anything take about 1.04 seconds.
mirror needed about 250 seconds to copy my site. Subsequent
runs which don't need to copy anything take about 2.6 seconds.
Ease of use
ftpcopy does the right thing by default, it creates a copy
of a ftp site in a local directory. The documentation is small.
mirror needs a configuration file. The documentation is
large.
Impact on mirrored sites
ftpcopy behaves like a good citizen and doesn't try to kill
it's server.
mirror by default issues an recursive directory listing command,
which can eat an astonishing amount of server resources. The default
can be changed, but almost nobody does that.
EPLF
ftpcopy understands EPLF and can create copies of, for
example,
ftp://cr.yp.to and
ftp://ftp.ohse.de. EPLF
allows it to correctly set the modification time of the files,
no matter what time zone the FTP server is in.
mirror fails to understand this.
MLSD
ftpcopy uses, if available, the relatively new MLSD command
for directory listings. MLSD offers the same features as EPLF does.
mirror fails to understand this.