[mirror-admin] Having to throttle back rsync on download servers
Fabrice Bellet
fabrice at bellet.info
Mon Mar 3 06:54:23 EST 2014
Hi!
On Thu, Feb 27, 2014 at 10:34:32PM -0300, Carlos Carvalho wrote:
> Stephen John Smoogen (smooge at gmail.com) wrote on 27 February 2014 10:58:
> >
> >
> >
> >On 27 February 2014 06:44, Carlos Carvalho <carlos at fisica.ufpr.br> wrote:
> >
> > If you want to experiment with what gives best performance, fine. If
> > you just want to make sure updates work well it's better to limit
> > access to tier 1 mirrors only. That's the whole point of tiering. I
> > prefer this option.
> >
> > We update every hour but check the timestamp of fullfilelist and only
> > do the dreadful scan when it's changed, so there's no impact on the
> > server. All mirrors that deserve access to the tier 0's should do the
> > same...
> >
> >
> >
> >Could you share your scripts on how you do this? Every mirror has a different
> >way of doing things because they mirror so many different servers but showing
> >best practices might help others to do similar things.
>
> Here's the skeleton of a portion of our update script, which uses
> rsync exclusively.
>
> There must be a file in the repository that's modified whenever the
> repository changes. Fedora doesn't have a specific file for this like
> other distros but fullfilelist can be used.
>
> TIME_STAMP=name of the file, starting from the root of the repository
> FROM=upstream site
> TO=path of local repository
>
> In bash:
>
> cd /to/scratch/directory
> export TZ=UTC
>
> if [ $TIME_STAMP ] && [ -e $TO/$TIME_STAMP ]; then
> # use rsync without a destination to get listing only
> rsync [options] $FROM/$TIME_STAMP > time-stamp
> # parse first line to get info from time_stamp file; use date to
> # convert format to seconds from Epoch
> upstream_timestamp=$(date -d "$(awk 'BEGIN {getline; print $3 " " $4}' time-stamp)" +%s)
> # same for local version
> local_timestamp=$(stat -c %Y $TO/$TIME_STAMP)
> if (($upstream_timestamp <= $local_timestamp + 5)); then
> echo "Upstream timestamp is not more recent than here"
> echo "Aborting"
> exit 0
> fi
> fi
Thanks for this script, it's very useful. By the way, it would be
great if the fedora-secondary repository also could provide a
fullfilelist timestamp.
best wishes,
--
fabrice
--
More information about the Mirror-admin
mailing list