Mirror administration

Finnix, the LiveCD for system administrators

This page is intended for official mirror administrators, for syncing mirrors against the master release server. If you are not a official mirror but would like to become one, please see Mirrors.

When to mirror

Mirrors must be updated daily at the very least, but hourly would be preferred. Usually the files don't change at all except before a release, so very little data will be transferred most of the time.

You can mirror any time of day, but please avoid mirroring directly on the hour. Pick a random minute in cron to do the syncs.

Server setup

At the moment, only one rsync module is provided, finnix-releases-master. Please do not pick a directory structure in the format "/pub/mirrors/finnix" to rsync this to, as future modules may be desired. Please use a structure such as "/pub/mirrors/finnix/releases". Almost all current mirrors have "releases" as the end directory.

Symlinks (relative) must be enabled on your web server software.

This is not specific to Finnix, but be sure to turn off all server-side processing such as CGI or PHP for your mirror site. The Finnix archives do not have any dynamic content, but you cannot trust that assertion.

Mirror script

The following script is recommended for performing the rsync itself. You do not have to apply a trace file, but it is recommended. However, you must never remove any of the files in the tree after transfer, especially the transferred trace files, as they are used by mirror monitoring scripts to determine if a mirror is out of date.

#!/bin/sh

# Needed variables
RSYNC_USER="setme"
RSYNC_PASSWORD="setme"
RSYNC_DEST="/path/to/pub/mirrors/finnix/releases"
HOST="$(hostname -f)"

RSYNC_FLAGS="-a"
[ "$VERBOSE" = "yes" ] && RSYNC_FLAGS="-avP"

# Perform the sync itself
export RSYNC_PASSWORD
rsync $RSYNC_FLAGS \
  rsync://${RSYNC_USER}@rsync-master.finnix.org/finnix-releases-master/ \
  ${RSYNC_DEST}/

# Add a trace file.  Not needed, but highly recommended.
mkdir -p "${RSYNC_DEST}/project/trace"
TZ=UTC date >"${RSYNC_DEST}/project/trace/$HOST"

Monitoring

The master server will test your mirror every few hours to make sure it is functional. No ISOs or other large files will be transferred, but it will check the files in /project/trace. These file(s) will be used to determine how old the last mirror sync is. Outdated mirrors (older than two days) will be removed from the automatic rotation until they are current again. Mirrors that do not respond at all will be taken out of the rotation, then will be tested every few minutes, with an exponential backoff until they respond again.

Current mirror status is available at mirrors.finnix.org.

Personal tools