Mirrordamise skript

Allikas: Kuutõrvaja

Sobilik näiteks avaliku FTP serveri loomiseks.

#!/bin/sh

PATH=/bin:/usr/bin:/usr/local/bin
export PATH

FTPDIR=/srv/ftp
LOGDIR=/srv/mirror/log

# Kolm parameetrit:
# $1 - mirrori nimi
# $2 - kust võetakse
# $3 - kuhu pannakse
#
_mirror () {
  date "+Start $1: %+" >> $LOGDIR/mirror.log
  if [ -f /var/run/$1.lock ]; then
    echo "$1 eelmine mirror ikka veel töötab." >> $LOGDIR/mirror.log
    return
  else
    date '+Start: %+' > $LOGDIR/$1.log
    lockf -t 0 /var/run/$1.lock rsync -av --delete --omit-dir-times $2 $3 >> $LOGDIR/$1.log 2>&1
    date '+End: %+' >> $LOGDIR/$1.log
  fi
  date "+End   $1: %+" >> $LOGDIR/mirror.log
}

ulimit -n 8192

# FreeBSD
_mirror FreeBSD-CERT ftp.cz.freebsd.org::FreeBSD/CERT/ $FTPDIR/pub/FreeBSD/CERT/
_mirror FreeBSD-distfiles ftp.cz.freebsd.org::FreeBSD/distfiles/ $FTPDIR/pub/FreeBSD/distfiles/

# kernel.org
_mirror KERNEL-ORG rsync.kernel.org::pub/ $FTPDIR/pub/kernel.org/

# Gentoo
_mirror gentoo rsync://ftp.snt.utwente.nl/gentoo/ $FTPDIR/gentoo
_mirror gentoo-portage rsync://rsync.europe.gentoo.org/gentoo-portage/ $FTPDIR/gentoo-portage