mm - mirror master
mm [flags] [package-files]
is the mirror master. It runs multiple calls to mirror
parallel and handles locking and minimal retry times.
As with mirror, mm
is a package written in Perl.
presumes that all the package details are stored in a directory called
packages. All the packages for a given site must be in a file whose name is
the same as that of the site. So in packages/sunsite.org.uk will be all the
package details for the host sunsite.org.uk.
- Ignore the minimal retry timers.
- -o site:package
- Only mirror the given site:package.
- Enable debugging. If this argument is given more than once the debugging
level will increase. Currently the maximum useful level is four.
- Enable status debugging. This will print out the status of any subprocess
as it is spawned or as it exits.
The configuration file is parsed as a series of statements. Blank lines and
lines beginning with a hash are ignored. There are are two kinds of
statements, controls and site:package details.
Control statements are of the form:
You can add whitespace around the equals.
Here is a list of the keywords and their values, any defaults are given inside
- Directory that mm chdirs to before doing any work.
- Maximum number of mirrors that can be running in parallel at any one
- This is the way to call mirror. Any occurence of $args, $package or $site
is replace with the appropriate entry from the package. Any $pkg is
replaced with a version of $package with all characters that cause
problems in filenames converted to underscore. The default is: exec
./mirror \$args -p'\$package' packages/\$site > logs/\$site:\$pkg
- Run the given command. This can occur multiple times.
- Run the given command and use its output as mm input. This can occur
- Skip the given site:package when it occurs.
In addition to control statements there are also package details. Each package
details statement is of the form:
site:package min-restart-last-ok min-restart-last-notok mirror-args
The site and package fields are matched against those in the packages. A mirror
will only be run to this site:package if the last mirror run was more than
hours out. The min-restart-last-ok
limit will be used if the
last call to mirror was successful. If the mirror call failed then
will be used.
Here is a simple mm
input file to manage mirroring two packages.
ftp.cl.cam.ac.uk:JIPS-nrs 20 20
hcrl.open.ac.uk:hcrl-psion 20 20
More usually the auxilly program pkgs_to_mmin
will be used to
automatically convert the contents of the packages directory into the
Written by Lee McLoughlin <firstname.lastname@example.org>.