Sunday, November 15, 2009

Создание Зеркала Репозитория ELRepo при Помощи lftp, wget

При создании зеркала репозитория ELRepo столкнулся с проблемой, связанной с стем, что на серверах проекта не были установлены службы FTP и rsync, и доступ к репозиторию предоставлялся только посредством протокола HTTP.

На просьбу установить rsync на серверах получил отказ в связи с особенностями текущего хостинга ресурса.

Лучшим решением является использование lftp:
#!/bin/bash
SRC=http://elrepo.org/linux/
DST=/var/ftp/pub/elrepo/

cd $DST
lftp -e "mirror --delete --only-newer --verbose && exit" $SRC

Проблему также можно решить при помощи wget:
#!/bin/bash
SRC=http://elrepo.org/linux/
DST=/var/ftp/pub/elrepo/

wget \
    --mirror \
    --no-parent \
    --no-host-directories \
    --cut-dirs=1 \
    -P $DST \
    $SRC

find $DST -name 'index.html*' -exec rm -f {} \;
Недостатком wget является то, что он не умеет удалять устаревшие локальные файлы, которые на момент синхронизации уже отсутствовали на сервере, более длительное время работы в сравнении с lftp, затраты трафика на загрузку бесполезных файлов index.html*.

0 comments:

Post a Comment