Зеркалирование RFRemix

Репозиторий RFRemix занимет около 400 Гб, включая образы. Для зеркалирования нужно отправить письмо на адрес [email protected], чтобы получить персональный доступ. В письме необходимо указать:

  1. IP-адрес вашего сервера;
  2. Его имя;
  3. Пути доступа по HTTP, FTP, RSYNC (те что имеются);
  4. Адрес для обратной связи.

После этого следует запустить нижеприведённый скрипт, изменив в нём переменную $FEDORA_HOME. Необходимо, чтобы репозиторий russianfedora находился внутри зеркала Fedora, на одном уровне с каталогом linux, так как мы используем ссылки на некоторые пакеты из основного дерева. Скрипт следует запускать по крону раз в минуту.

#!/bin/sh
if [ -f "/var/lock/russianfedoramirror" ]; then
    echo "Another copy of russianfedoramirror script already running";
    exit 0;
else
    touch /var/lock/russianfedoramirror;
fi

LOGFILE="/var/log/russianfedora-$(date +%Y%m%d"-"%H%M%S).log"

# Sync from. Your should mail your IP to [email protected] to
# get private access to this host and module.
HOST="knight.yandex.net"

# Remote timestamp file
TRACE=".mirror.yandex.ru"

# Temp file
TEMP_FILE=$(mktemp)

# Set the home directory of fedora full mirror. RFRemix
# will mirror into this directory as we have some links
# on Fedora packages
FEDORA_HOME=""

rsync --timeout=30 $HOST::rfremix/russianfedora/$TRACE $TEMP_FILE

MD5SUM_LOCAL=$(md5sum $FEDORA_HOME/russianfedora/$TRACE | awk '{print $1}' )
MD5SUM_REMOTE=$(md5sum $TEMP_FILE | awk '{print $1}' )

if [ "$MD5SUM_REMOTE" != "$MD5SUM_LOCAL" ]; then

    # Let $? will not be 0
    ls /dcbhjdcbhcbjhcf > /dev/null 2>&1

    while [ $? -ne 0 ]; do
        rsync --timeout=30 -avHP --delete-after --delay-updates \
            $HOST::rfremix/russianfedora/ \
            $FEDORA_HOME/russianfedora/ > $LOGFILE 2>&1
        sleep 2;
    done

    bzip2 -9 $LOGFILE
fi

rm -f /var/lock/russianfedoramirror
rm -f $TEMP_FILE