По эксплуатировал sisyphus-mirror с перечисленными выше настройками. В принципе все работает стабильно, но заметил такую особенность: при переносе зеркала на другой винт под новую систему, параметры rsync ARGS="-avz --stats --delete-after --progress" при синхронизации затребовали дополнительно столько же места, сколько и сам архив. Вернул, параметры ARGS="-rltmvH --delete-delay --delete-excluded --stats" предложенные разработчиками скрипта, скрипт отработал культурно, без "дисковых" затрат.
Расширил зеркало, включив для него 32 битные системы.
- 64 бит - ARCH="noarch x86_64 x86_64-i586" - занято 78GB на данный момент.
- 32 бит + 64 бит - ARCH="noarch i586 x86_64 x86_64-i586 x86_32" - занято 110GB на данный момент.
# du -d 1 /mnt/diskdata/ftp/ALTLinux/p8/branch
365M /mnt/diskdata/ftp/ALTLinux/p8/branch/noarch
109G /mnt/diskdata/ftp/ALTLinux/p8/branch/files
61M /mnt/diskdata/ftp/ALTLinux/p8/branch/x86_64-i586
254M /mnt/diskdata/ftp/ALTLinux/p8/branch/i586
274M /mnt/diskdata/ftp/ALTLinux/p8/branch/x86_64
110G /mnt/diskdata/ftp/ALTLinux/p8/branch
Изменил конфиг /etc/sisyphus-mirror/sisyphus-mirror.conf и месторасположение зеркала /mnt/diskdata/ftp/ALTLinux, теперь конфиг выглядит так:
# cat /etc/sisyphus-mirror/sisyphus-mirror.conf
# source mirror
SRCROOT=rsync://rsync.altlinux.org/ALTLinux
#SRCROOT=rsync://mirror.yandex.ru/altlinux
#SRCROOT=rsync://ibiblio.org/Linux/distributions/altlinux
#SRCROOT=rsync://ftp.linux.kiev.ua/ALTLinux
# distination directory
DESTROOT=/mnt/diskdata/ftp/ALTLinux
# example: we can use sisyphus-mirror for synchronize repos to removable media
#DESTROOT=/media/disk/ALTLinux
# repos for sync
LIST="p8/branch"
#LIST="Sisyphus 4.0/branch updates backports people/shrek"
# architectures for sync
ARCH="noarch i586 x86_64 x86_64-i586 x86_32"
# repos for search hardlinks
#LINK_LIST="Sisyphus p7/branch t7/branch"
LINK_LIST="p8/branch"
# speed limit in Kb/s (--bwlimit=)
#SPEED=512
#SPEED=
# other argumets for rsync
# recommended for non-interactive mode:
ARGS="-rltmvH --delete-delay --delete-excluded --stats"
# recommended for interactive mode:
#ARGS="-rltvhmH --progress --delete-delay --delete-excluded --stats"
#ARGS="-avz -x --stats --delete-after --progress"
# if 1, print output to stdout
INTERACTIVE=0
# temp directory for synchronization
TMPDEST=.new
# backup type - READ README.UTF8
#BACKUP_TYPE=one
#BACKUP_TYPE=snapshots
# directory for backups
#BACKUP_DIR=/var/ftp/ALTLinux/previous-state
#BACKUP_DIR=/var/ftp/ALTLinux/archive
# if you do not want to download some packages, use this file
EXCLUDE_FILE=/etc/sisyphus-mirror/exclude
# this file needed when ARCH variable is used
INCLUDE_FILE=/etc/sisyphus-mirror/include
# directory for custom configs and logs
RSHOME="$HOME/.sisyphus-mirror"
# number of tries
#MAXATTEMPTS=10
# rsync protocol timeout (--timeout)
#TMOUT1=500
# pause between attempts
#TMOUT2=15
# http proxy server with HTTP CONNECT (host:port)
#RSYNC_PROXY=localhost:3128
Зеркало раздается ftp сервером ProFTPd.
Конфиг сервера ProFTPd, /etc/proftpd.conf выглядит так:
# cat /etc/proftpd.conf
ServerName "ProFTPD AEHV"
ServerType standalone
DefaultServer on
AuthOrder mod_auth_pam.c* mod_auth_unix.c mod_auth_file.c
# если не выключить эти две опции, то фтп при подключении будет сильно тормозить
IdentLookups off
UseReverseDNS off
# порт подключения
Port 21
# протокол IPv6 on/off
UseIPv6 off
Umask 022
ListOptions "-a"
# максимальное число одновременно запускаемых процессов / только в режиме standalone /inetd - один процесс
MaxInstances 30
# пользователь и группа под которыми работает процесс ftp сервера
User nobody
Group nobody
#"закрывает" каждого пользователя в его домашнем каталоге
# и не дает подняться на уровень выше
DefaultRoot ~
# запрещаем root логин на сервер
RootLogin off
# разрешить перезаписывать существующие файлы
AllowOverwrite on
DenyFilter \*.*/
# запрещаем использования SITE CHMOD
<Limit SITE_CHMOD>
DenyAll
</Limit>
<IfModule mod_lang.c>
#LangDefault ru_RU
LangDefault en_US
LangEngine on
#UseEncoding local_charset client_charset
# подружить ftp с windows
UseEncoding UTF8 CP1251
# or for 'opts utf8 on' support:
#UseEncoding on|off
</IfModule>
# докачка файлов на сервер
AllowStoreRestart on
# Учетные данные пользователей с файла созданные c помощью ftppasswd
# при активации анонимный доступ не возможен
# для испльзования подключить модуль mod_auth_file.c
#AuthUserFile /etc/proftpd/ftpd.passwd
# Логи системные (запуск/ошибки) и транспортные (копирование/удаление)
SystemLog /var/log/proftpd/err.log
TransferLog /var/log/proftpd/transfer.log
<Anonymous /mnt/diskdata/ftp>
User ftp
Group ftp
# рассматривать клиентов, вошедших под логином anonymous как ftp
UserAlias anonymous ftp
# лимит на максимальное количество подключений пользователя anonymous
MaxClients 30
# не спрашивать оболочку
RequireValidShell off
# Запрашивать ли пароль для анонимного подключения
AnonRequirePassword off
# Запретить перезапись файлов для анонимус окружения
# даже если выше перезапись разрешалась
#AllowOverwrite off
# ограничение ЗАПИСИ(WRITE) везде в anonymous chroot
<Limit WRITE>
Order Deny, Allow
DenyAll
</Limit>
<Directory ALTLinux/*>
# <Limit READ>
# DenyAll
# </Limit>
<Limit READ>
AllowAll
</Limit>
</Directory>
</Anonymous>
Для запуска proftpd необходимо, добавить строчку (ip - hostname) в файл /etc/hosts
127.0.0.1 имя_сервера
[root@server-ftp ~]# hostname
server-ftp.localdomain
[root@server-ftp ~]# echo "127.0.0.1 server-ftp.localdomain" >> /etc/hosts
[root@server-ftp ~]# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.0.1 server-ftp.localdomain
Не знаю для чего это dns сопоставление, но без этого proftpd не работает.
Данное описание работает для startkit server p8 (sysvinit). На systemd не работает (по крайне мере я не смог запустить) proftpd. Пишу данное руководство для себя, может кому пригодиться тоже.