All pastes #1520765 Raw Edit

root

public text v1 · immutable
#1520765 ·published 2009-08-06 18:22 UTC
rendered paste body
################################################################################################################################################## This is a sample configuration file for the ftpsync mirror script. #### Most of the values are commented out and just shown here for       #### completeness, together with their default value.                   #################################################################################################################################################### Mirrorname. This is used for things like the trace file and should always## be the full hostname of the mirror.MIRRORNAME="debian.si.prunk.si"## Destination of the mirrored files. Should be an empty directory.## CAREFUL, this directory will contain the mirror. Everything else## that might have happened to be in there WILL BE GONE after the mirror sync!TO="/home/debmir/debian"## The upstream name of the rsync share.RSYNC_PATH="debian"## The host we mirror fromRSYNC_HOST="ftp.at.debian.org"## In case we need a user to access the rsync share at our upstream host#RSYNC_USER=## If we need a user we also need a password#RSYNC_PASSWORD=## In which directory should logfiles end up## Note that BASEDIR defaults to $HOME, but can be set before calling the## ftpsync script to any value you want (for example using pam_env)LOGDIR="${BASEDIR}/log"## Name of our own logfile.## Note that ${NAME} is set by the ftpsync script depending on the way it## is called. See README for a description of the multi-archive capability## and better always include ${NAME} in this path.LOG="${LOGDIR}/${NAME}.log"## The script can send logs (or error messages) to a mail address.## If this is unset it will default to the local root user unless it is run## on a .debian.org machine where it will default to the mirroradm people.MAILTO="janprunk@gmail.com"## If you do want a mail about every single sync, set this to false## Everything else will only send mails if a mirror sync failsERRORSONLY="false"## If you want the logs to also include output of rsync, set this to true.## Careful, the logs can get pretty big, especially if it is the first mirror## runFULLLOGS="true"## If you do want to exclude files from the mirror run, put --exclude statements here.## See rsync(1) for the exact syntax, these are passed to rsync as written here.## DO NOT TRY TO EXCLUDE ARCHITECTURES OR SUITES WITH THIS, IT WILL NOT WORK!#EXCLUDE=""## If you do want to exclude an architecture, this is for you.## Use as space seperated list.## Possible values are:## alpha, amd64, arm, armel, hppa, hurd-i386, i386, ia64,## m68k, mipsel, mips, powerpc, s390, sh and sparc## eg. ARCH_EXCLUDE="alpha arm armel mipsel mips s390 sparc"## An unset value will mirror all architectures (default!)## ARCH_EXCLUDE="alpha arm armel hurd-i386 ia64 m68k mipsel s390 powerpc sh"######### ARCH_EXCLUDE="alpha arm armel hppa hurd-i386 ia64 mips m68k mipsel s390 powerpc sparc"## Do we have leaf mirror to signal we are done and they should sync?## If so set it to true and make sure you configure runmirrors.mirrors## and runmirrors.conf for your need.HUB=false## We do create three logfiles for every run. To save space we rotate them, this## defines how.SAVELOG="savelog -t -c 14"## We need to deal with lockfilesLOCKFILE="lockfile"## Our own lockfile (only one sync should run at any time)LOCK="${TO}/Archive-Update-in-Progress-${MIRRORNAME}"## The following file is used to make sure we will end up with a correctly## synced mirror even if we get multiple pushes in a short timeframeUPDATEREQUIRED="${TO}/Archive-Update-Required-${MIRRORNAME}"## The trace file is used by a mirror check tool to see when we last## had a successful mirror sync. Make sure that it always ends up in## project/trace and always shows the full hostname.## This is *relative* to ${TO}TRACE="project/trace/${MIRRORNAME}"## We sync our mirror using rsync (everything else would be insane), so## we need a few options set.## The rsync programRSYNC=rsync## BE VERY CAREFUL WHEN YOU CHANGE THE RSYNC_OPTIONS! BETTER DON'T!## BE VERY CAREFUL WHEN YOU CHANGE THE RSYNC_OPTIONS! BETTER DON'T!## BE VERY CAREFUL WHEN YOU CHANGE THE RSYNC_OPTIONS! BETTER DON'T!## BE VERY CAREFUL WHEN YOU CHANGE THE RSYNC_OPTIONS! BETTER DON'T!## Default rsync options every rsync invocation sees.RSYNC_OPTIONS="-rltvHSB8192 -4 --timeout 3600 --stats --exclude Archive-Update-in-Progress-${MIRRORNAME} --exclude ${TRACE} --exclude Archive-Update-Required-${MIRRORNAME}"## Options the first pass gets. We do not want the Packages/Source indices## here, and we also do not want to delete any files yet.RSYNC_OPTIONS1="--exclude Packages* --exclude Sources* --exclude Release* --exclude ls-lR*"## Options the second pass gets. Now we want the Packages/Source indices too## and we also want to delete files. We also want to delete files that are## excluded.RSYNC_OPTIONS2="--max-delete=40000 --delay-updates --delete --delete-after --delete-excluded"## You may establish the connection via a web proxy by setting the environment## variable RSYNC_PROXY to a hostname:port pair pointing to your web proxy.  Note## that your web proxy's configuration must support proxy connections to port 873.# RSYNC_PROXY=## The following three options are used in case we want to "callback" the host## we got pushed from.#CALLBACKUSER="archvsync"#CALLBACKHOST="none"#CALLBACKKEY="none"## Hook scripts can be run at various places during the sync.## Leave them blank if you don't want any## Hook1: After lock is acquired, before first rsync## Hook2: After first rsync, if successful## Hook3: After second rsync, if successful## Hook4: Right before leaf mirror triggering## Hook5: After leaf mirror trigger, only if we have slave mirrors (HUB=true)#### Note that Hook3 and Hook4 are likely to be called directly after each other.## Difference is: Hook3 is called *every* time the second rsync was successful,## but even if the mirroring needs to re-run thanks to a second push.## Hook4 is only effective if we are done with mirroring.#HOOK1=#HOOK2=#HOOK3=#HOOK4=#HOOK5=