[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: mirror



On Wed, 27 Mar 2002, Druid wrote:

>
> Tuesday, March 26, 2002, 7:31:36 PM, you wrote:
>
> ISS> HI!!!
> ISS> Надо мне миррор woody.
> ISS> Вот сейчас руки дошли до absurd_debmirror.
> ISS> Ну исправил я там ошибочку малюсенькую, но почему такая фигня я так и не понял:
>
> ISS> Может кто его пользует. Поделитесь опытом, пожалуйста.
>
> может ты там что-то не то поправил? у меня заработало без всяких
> исправлений. /home/druid/bin/absurd_debmirror "/home/druid/woody"
> "ftp.no.debian.org" "debian" "woody" "main contrib non-free" "source i386"
>


Наши собираются... Все больше и больше народу использует absurd_debmirror,
все правят в нем какие-то ошибки, наверняка посылают их автору,
а тот не отвечает. Может нам того, форкнуть его и свою CVS завести?

Рассказываю что я там правил:

Когда я запустил эту хреновину на 486 с 4 мегами памяти,
генерация .sync_pf у меня занимала часов восемь. Я туда
посмотрел, ужаснулся и переписал этот кусок. Теперь
оно генерится на этой машине минуты и расходует куда меньше
памяти.

Создание dirlist у меня теперь выглядит так:

dl=.sync_pf_dirlist
rm -f ${dl}

echo
echo -n "Creating dirlist..."
date_pre=`date +%s`
awk -F /  '{
              line = ""
              for (i=1;i<NF;i++) {
              if (i>1) {
                line = line "/" $i;
              } else {
                line = $1;
              };
              if (a[i]!=$i) {
                print line;
              };
              a[i]=$i
              }
            }' ${pf}>>${dl}
echo "done. (Took $((`date +%s` - ${date_pre})) seconds)"

И никакой сортировки! Зачем? Исходный filelist уже отсортирован,
а данный алгоритм сортировку сохраняет.

Еще замечен такой глюк - в промежутке между временем,
когда уже выкачался новый файл Packages и временем когда
докачались все файлы, миррор находится с неконсистентном состоянии.

В Packages уже новая версия пакета, а на диске уже старая.

Как  лечится - понятно - новые Packages и Sources складываются
сбоку, и на место штатных перемещаются непосредственно перед
удалением устаревших файлов.

Я этого не сделал только потому, что у меня в этой машнке всего
10 гигов, поэтому если миррор не апдейтить дня три, места начинает
не хватать, поэтому на непрерывное поддержание миррора в консистентном
состоянии приходится забить, и в некоторых случаях сносить устаревшие
файлы отдельным скриптиком до того, как начали качаться новые.

Что касается исходной проблемы, то одно из двух - либо rsync-овский
порт закрыт на файрволле, либо поставлена кривая версия rsync. Была
как-то такая среди security updates в potato, которая не работает.
Уже давно вышел более другой апдейт.

А rsync из slink (на четырехмегабайтную машину пришлось ставить slink,
поскоольку потато так ставиться не умеет, а потом уже апгрейдить
до potato) не работает точка совсем.



-- 
Victor Wagner			vitus@ice.ru
Chief Technical Officer		Office:7-(095)-748-53-88
Communiware.Net 		Home: 7-(095)-135-46-61
http://www.communiware.net      http://www.ice.ru/~vitus


-- 
To UNSUBSCRIBE, email to debian-russian-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: