До появления прямого соединения с интернетом (провайдером был открыт только http),
было довольно проблематично поддерживать локальный репозитарий пакетов в актуальном состоянии.
Для выхода из подобной ситуации был написан следующий скрипт,
который в некотором приближении заменяет rsync.#!/bin/sh
cd /opt/rpm-update
#mirror_base_url=http://ftp.belnet.be/packages/centos/4.3/os/i386/CentOS/RPMS/
#mirror_update_url=http://ftp.belnet.be/packages/centos/4.3/updates/i386/RPMS/
mirror_base_url=$1
local_rpm_directory=$2
#local_rpm_directory=/var/ftp/pub/centos-4.3/
file_html=./index.html
file_rpms=./files.log
rm -f $file_html
rm -f $file_rpms
echo "---------------------------------------------------------"
echo "obtaining file list from $mirror_base_url ..."
wget -q --no-cache $mirror_base_url
echo "ok."
cut -d"=" $file_html -f4 | cut -d"\"" -f2 | grep rpm | sort > $file_rpms
a=`cat $file_rpms`
for cur_rpm in $a
do
cur_rpm_file=$local_rpm_directory$cur_rpm
if [ -e $cur_rpm_file ]
then
echo "$cur_rpm exist." > /dev/null
else
echo "downloading $cur_rpm ..."
wget -q --no-cache $mirror_base_url$cur_rpm
echo "ok."
mv ./$cur_rpm $local_rpm_directory
fi
done
rm -f $file_html
rm -f $file_rpms
и вызов этого скрипта
#!/bin/sh
echo "***** run4 START ***** " >> /var/log/rpm_update4
/opt/rpm-update/lsus.sh http://ftp.belnet.be/packages/centos/4.3/updates/i386/RPMS/ /var/ftp/pub/centos-4.3/ >> /var/log/rpm_update4
/opt/rpm-update/lsus.sh http://ftp.belnet.be/packages/centos/4.3/os/i386/CentOS/RPMS/ /var/ftp/pub/centos-4.3/ >> /var/log/rpm_update4
/opt/rpm-update/lsus.sh http://ftp.belnet.be/packages/centos/4.3/extras/i386/RPMS/ /var/ftp/pub/centos-4.3/ >> /var/log/rpm_update4
echo "generating headers..." >> /var/log/rpm_update4
yum-arch -q /var/ftp/pub/centos-4.3/
echo "ok." >> /var/log/rpm_update4
echo "generating repo..." >> /var/log/rpm_update4
createrepo -q /var/ftp/pub/centos-4.3/
echo "ok." >> /var/log/rpm_update4
echo "***** run4 STOP ***** " >> /var/log/rpm_update4
вызывается по крону, если на сервере появились свежие пакеты, быстренько заливает их в локальный репозитарий.
URL:
Обсуждается: http://www.opennet.dev/tips/info/1020.shtml