MIRROR(1) MIRROR(1)
NAME
mirror - copy file trees from FTP server to client
SYNOPSIS
mirror [-FGLNPTdfmnrtv] [-C<config file>] [-U<log file>] [-g<site:path>] [-k<vari-
able>=<value>] [-p<pattern>] [-R<pattern>] [-s<site name>] [-u<username>] [<path>]
DESCRIPTION
mirror is a perl script which uses the local FTP client to make exact copies of directo-
ries or parts thereof on remote FTP servers. With version 2.9 the source documentation
was converted to HTML. Please use your favourite web browser to read this in the documen-
tation tree e.g.,
$ lynx /usr/share/doc/mirror/html/mirror.html
The HTML documentation is the authoritive source.
OPTIONS
-Cconfig_file
Load alternative config file.
-d Turn on debugging - more -d's means more debugging.
-f Same as "-kforce=true".
-F Use files for assoc arrays (see also the variable use_files).
-gsite:path
Get all matching files on given site. If path matches .*/.+ then it is the name of
the directory and the last part is the pattern of filenames to get. If path
matches .*/ then it is the name of a directory and all its contents are retrieved.
Otherwise path is the pattern to be used in '/'. By default local files are over-
written by newer but not older remote files of the same name and are not deleted
for missing remote files.
-G Same as "-kget_file=true -kinteractive=true".
-kvar=val
set variable to value.
-L Generate a pretty list of what is being mirrored.
-m Same as "-kmode_copy=true".
-n Do nothing, just show what would be done.
-N Don't load mirror.defaults.
-ppattern
Just do packages matching pattern.
-P Same as "-kget_file=false -kinteractive=true".
-r Same as "-krecursive=false". Stops downloading of directory tree listings to speed
mirroring of a few files in the same directory. Sorry, this is the opposite of tra-
ditional option behaviour.
-Rpattern
Skip till the first package name matches pattern then do all. it and following
packages.
-sSITENAME
Same as "-ksite=SITENAME".
-t Same as "-ktext_mode=true".
-T Dont transfer just force local timestamps to match remote.
-uusername
Same as "-kremote_user=username", prompts for remote_password.
-ULOGFILE
Set the upload log to LOGFILE - if none given uses the file
$home/upload_log.$mday.$mon.$year
-v Print version and exit.
path Path to package file either full or relative to default directory. Package files
may reset many variables from defaults. See HTML documentation listed below for
details.
EXIT STATUS
0 Successful program execution. Applies even when mirror package or remote server
files were missing or there were network errors. Result details are written to std-
out.
>0 Missing or corrupt perl executables or mirror source files.
DIRECTORIES
On a Debian system, configuration and program files of the mirror packages are found in
the following directories:
/etc/mirror/
/usr/share/doc/mirror/
/usr/lib/mirror/
HINTS
The -g option can keep a single file or directory up to date and requires no configuration
files.
Use -r to avoid downloading a whole directory listing if you just want a few files in the
same directory.
Example configuration and package files are in subdirectories of /etc/mirror and
/usr/share/doc/mirror/examples.
If mirror behaves strangely use -d to see what is happening. The more you use the more
detail so redirect the output to a file.
When mirror fails to work for you, the default value of a parameter described in mir-
ror.html may need setting or resetting e.g. if your machine connects through a strict
firewall, you may need passive FTP. Set the variable,
passive_ftp=true
on a line in your package file for passive FTP.
For postprocessing of a mirror run you can set
mail_prog=pathname
where pathname is a script mirror will execute after completing a package. Mirror sends
the logfile to pathname's stdin which pathname may read and process. You can set
mail_subject="$keyword ..."
where $keyword will be replaced by its value for the package and pathname can read this as
an argument. mail_to can be set to ordinary arguments. If you still want email from this
mirror package pathname must send it. Try all this only when no simpler way of using mir-
ror works.
Use cron to deal with network errors by daily or weekly repetition at a time when the net-
work near both server and client is idle.
A bash script can run mirror commands sequentially but mirror-master can start them simul-
taneously and/or sequentially for best use of core and network idle time.
You should not mirror the same site more than once in 24 hours unless you use ls-lR files
to improve tracking and minimize server load. Some FTP servers encourage the use of ls-lR
files by disabling recursive directory listings. See mirror-lslR.html for instructions.
mirror downloads each file into a temporary file prefixed .in. and renames on completion.
If you or anything interrupt and then restore the net link, wait for mirror to either
restart downloading or time itself out in about ten minutes. When relinked and after a
time out reissue the command and mirror restarts from the end of the .in. file.
To stop mirror press Control-Z. After a restart with fg wait for mirror to resume down-
loading or time out. A restart after such time out, begins with the end of the .in. file.
If you reboot, log off, interrupt with ^C or kill with ^U mirror downloads the .in. file
again on restart.
For safe system use create a normal user say ftpadm. Use chown -R ftpadm. on the directo-
ries /var/log/mirror/, /var/lib/mirror/, /etc/mirror/ and /home/ftp/pub/ to allow ftpadm
to operate mirror and mirror-master. Add ftpadm to ftpd's etc/group and etc/passwd using
ftpd documentation. Servers with more than one archivist may have an ftpadm group.
AUTHOR
The author of the mirror script is Lee McLoughlin and the source of the documentation and
scripts is:
http://sunsite.org.uk/packages/mirror/
COPYRIGHT
The copyright statement can be found in the file
/usr/share/doc/mirror/copyright.
SEE ALSO
HTML documentation at /usr/share/doc/mirror/html/mirror.html. mirror-quick.html, mirror-
lslR.html, chmod(1), cron(8), crontab(1), do_unlinks(1), mirror-master(1),
pkgs_to_mmin(1), mkls-lR(1), ftp(1), ftpd(8).
Debian Project 10 June 2004 MIRROR(1)
Generated by $Id: phpMan.php,v 4.49 2006/02/26 13:18:18 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2012-05-25 23:08 @38.107.179.238 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html)