Оцените этот текст:





Инструкция лежит здесь:
http://lib.ru/DOWNLOAD/mirroring.txt



             Условий пока никаких не выдвигается,
             кроме вполне естественных:

     1. Прислать мне url зеркала
     2. Сообщить email-адрес ответственного за зеркало
     3. Ставить   ВСЕ  апдейты библиотеки по мере поступления и
        без задержки.
     4. Не  исключена  вероятность  изменений  в библиотеке,
        которые потребуется проводить быстро и на всех зеркалах.
        Посему -  гарантируйте,  что  "срочные  апдейты"  будут
        ставиться незамедлительно, As Soon As Possible.



     По  состоянию  на  23  января 2004 библиотека состоит из 40 тысяч файлов,
размер - 4.6 Gb, темп прироста - 50-100Mb в месяц.
     Посещаемость  базового зеркалa (lib.ru) - до 40 Gb
трафика, 500,000 запросов, 35-40 тысяч человек в сутки,
       Посещаемость  всех  остальных  зеркал  оценить можно как 30 - 500
человек в день каждое.



     Все   файлы   библиотеки   лежат   на   anonymous   ftp  в
в заархивированном виде.
     Все  лежит в формате cpio.gz одним файлом liYYMMDD.cpz ( ок. 2Гб )
(где YY - год, MM - месяц, DD - день создания архива)
      а так же этот же архив порезанный на кусочки liYYMMDD.r01,
liYYMMDD.r02 и т.д.

      Чтобы раскрутить все это безобразие - иметь Unix-машину в
любым  httpd  сервером  и  программами  perl,  gzip,   glimpse,
лежащими в каталоге /usr/bin или /usr/local/bin
      Патч для кирилизации glimpse лежит в
http://lib.ru/WEBMASTER/locale.c
      (иметь отпатченный под KOI8  glimpse  необязательно -
просто без него не будет работать search. )



 1. Создать    usera

   moshkow   UID=555  HOME=/home/moshkow

 2. Вскрыть в его HOME архив

 cd ~moshkow
 cat li20040123.cgz | gunzip | cpio -idmv
 cat li??????.r?? li??????.r??? | gunzip | cpio -idmv

 все    содержимое   библиотеки   должно   упасть   в   каталог
 ~moshkow/public_html/
 все тексты лежат в  ~moshkow/public_html/book/
 суммарный "тоннаж" (на январь 2004-го) примерно 4700 Mb

 3.  Встать  в  каталог, где у сервера лежат cgi-bin скрипты, и
закинуть в него CGI скрипт html-KOI

Скрипты  могут  называться так:
 koi, win, lat, alt, iso, mac
Либо
 html-KOI,  html-windows,  html-volapuk, html-alt, html-mac,
html-iso_8859_5
Либо koi.cgi, win.cgi, lat.cgi, alt.cgi, iso.cgi, mac.cgi
  по вкусу.

 cd /usr/local/etc/httpd/cgi-bin   # или где там еще ?
 cd /home/httpd/cgi-bin            # или где там еще ?

 ln -s /home/moshkow/public_html/bin/html-KOI.pl  koi
 ln -s koi win
 ln -s koi lat
 ln -s koi alt
 ln -s koi iso
 ln -s koi mac

     Примечание:  чтоб  в  cgi-bin директорию можно было класть
симлинки, в acces.conf httpd сервера на  cgi-директории  должна
быть прописана опция FollowSymLinks примерно так:

<Directory /home/httpd/cgi-bin>
Options FollowSymLinks
</Directory>

 4. Остается юзать:
http://your.host.name/cgi-bin/koi/    ....
   либо
http://your.host.name/cgi-bin/html-KOI/    ....

А если вставить в conf/srm.conf примерно такие строки:

ScriptAlias /library/koi /home/moshkow/public_html/bin/koi
ScriptAlias /library/win /home/moshkow/public_html/bin/win
ScriptAlias /library/lat /home/moshkow/public_html/bin/lat
ScriptAlias /library/alt /home/moshkow/public_html/bin/alt
ScriptAlias /library/iso /home/moshkow/public_html/bin/iso
ScriptAlias /library/mac /home/moshkow/public_html/bin/mac

то к библиотеке можно будет обращаться так:

http://your.host.name/library/koi/

 5.   Пункт   1  выполнять  необязательно,  но  в  этом  случае
необходимо в начале файла  html-KOI  отредактировать  константы
задающие фактическое расположение файлов библиотеки.

 6.  Убедитесь, что у вас есть /usr/bin/perl

 7.  Все  файлы библиотеки - в кодировке koi8, поэтому
использование их без cgi-скрипта html-KOI на виндовс-машинах
может быть не очень удобно



Формат хранения библиотеки описан тут:
http://lib.ru/WEBMASTER/libformat.txt



Для работы поиска по оглавлению библиотеки, на сервер нужно
установить _патченный_ индексатор glimpse. Скомпилируйте самостоятельно,
и положите либо в /usr/local/bin/glimpse   либо в
                  ~moshkow/public_html/bin/glimpse
Для FreeBSD,Linux,Solaris binaries версии glimpse могу прислать по запросу.
Патч для glimpse лежит здесь
  http://lib.ru/WEBMASTER/locale.c
  http://kulichki.com/moshkow/WEBMASTER/locale.c
Исходники glimpse - здесь:
  ftp://ftp.cs.arizona.edu/glimpse/glimpse-4.1.src.tar.gz
  http://kulichki.com/moshkow/SOFTWARE/glimpse-4.1.src.tar.gz




     При   желании   сэкономить   дисковое   пространство  вебсервера  можно
за-gzip-ить  некоторые  TXT-файлы  библиотеки.  Библиотечный  скрипт   умеет
определять такие случаи и автоматически guzip-ить сжатые файлы. На зеркале с
большой посещаемостью я бы  этого  делать  все  же  не  рекомендовал  -  CPU
жрется...  И  еще  в  сжатых  файлах  не работает поиск и What-s-new... Ниже
пример команды, сжимающей  все  текстовые  файлы  размером  больше  100Kb  и
изменившиеся более двух месяцев назад.

 su - moshkow
 cd ~moshkow
 find public_html/book -type f -size +200 \
         -mtime +60 -name "*.txt" -exec gzip {} \; -print


                     Feel free to point to my
                     mistakes in this paragraph.
                             Sorry for my bad english.

 1. Create     user

   moshkow   UID=555  HOME=/home/moshkow

 2. Extract archieve in moshkow's HOME directory

 cd ~moshkow
 cat li??????.r?? li??????.r??? | gunzip | cpio -idmv

 all content of library goes to
 ~moshkow/public_html/
 all e-texts goes to ~moshkow/public_html/book/
 full size of library at (Feb 1998) ~ 500 Mb

 3.  Link cgi-script html-KOI to your sgi-directory

You can name scripts as
 koi, win, lat, alt, iso, mac
Or koi.cgi, win.cgi, lat.cgi, alt.cgi, iso.cgi, mac.cgi
  on your taste

 cd /usr/local/etc/httpd/cgi-bin   # (or where it is?)
 cd /home/httpd/cgi-bin            # (or where it is?)

 ln -s /home/moshkow/public_html/bin/html-KOI  koi
 ln -s koi win
 ln -s koi lat
 ln -s koi alt
 ln -s koi iso
 ln -s koi mac

   Note:  Your cgi-directory should have permition for using
symlink in it so add into acces.conf Option FollowSymLinks  for
cgi-directory some like:

<Directory /home/httpd/cgi-bin>
Options FollowSymLinks
</Directory>

 4. And now - you can use it:
http://your.host.name/cgi-bin/koi/    ....

Also you can insert into conf/srm.conf somethiing like:

ScriptAlias /library/koi /home/moshkow/public_html/bin/koi
ScriptAlias /library/win /home/moshkow/public_html/bin/win
ScriptAlias /library/lat /home/moshkow/public_html/bin/lat
ScriptAlias /library/alt /home/moshkow/public_html/bin/alt
ScriptAlias /library/iso /home/moshkow/public_html/bin/iso
ScriptAlias /library/mac /home/moshkow/public_html/bin/mac

 And now - you can use it with url:

http://your.host.name/library/koi/

 6.  You should have perl (or symlink to real location of perl) at

/usr/bin/perl



Всю русификацию библиотечный скрипт делает сам. В русском Апаче
нужно   отключить   все   перекодирующие   функции   касающиеся
библиотеки.

Возможно поможет в httpd.conf:

<Directory /home/moshkow/public_html>
CharsetTurnOff on
CharsetMatchLanguage on
</Directory>

Или в httpd.conf

<IfModule mod_charset.c>
...
# CharsetDisable directive turns off all charset processing.
<Directory /home/moshkow/public_html/bin>
CharsetDisable on
</Directory>
...
</IfModule>

Или создать в /home/moshkow/public_html файл .htaccess и в него
вписать строчки (какие? см. русапач-doc)



     Базовая  версия  архива сделана в январе 2004. Изменения и
дополнения в библиотеку  выкладываются  раз в неделю по
понедельникам.

 Updates  лежат  на  anonymous  ftp  в /pub/moshkow/.library/
в заархивированном виде в формате cpio.gzip

 apYYYYMMDD.cpz

(где YYYY - год, MM - месяц, DD - день создания update)
или, порезаный на кусочки по 1Mb

 apYYYYMMDD.r??




Отныне  генерация  фтп-апдейтов  переведена  на автомат, архивы
готовятся еженедельно по понедельникам в 5 утра. Размещаются со
стандартными названиями файлов.
  apYYYYMMDD.cpz
         где YYYYMMDD - дата создания апдейта
         а так же с фиксированным именем
  apLAST.cpz

Повторять эту операцию раз в неделю по понедельникам:

 1. Сftpить очередной apTODAY.cpz или apYYMMDD.cpz
 2. Вскрыть архив в домашнем каталоге юзера moshkow
     su moshkow
     cd ~moshkow
     cat apTODAY.cpz | gunzip | cpio -idmv

все эти действия можно выполнить командой
  /home/moshkow/public_html/bin/libraryadmin -getlast
  # естественно, разумнее всего фрагмент программы, отвечающий
  # за апдейты вытащить в отдельный командный файл и зарядить его
  # в crontab  на утро понедельника.



Вся   поддержка   библиотеки   основана  на  перловом  cgi-крипте,  так  что
принципиальных препятствий развернуть зеркало не на Unix а на  NT  вроде  бы
нет.  За  прошедшее  время  4  администратора  предполагали  это сделать, но
сообщений об успехах я от них не получил.
 Одно зеркало: http://www.belpsb.minsk.by/moshkow/
работает под NT, запустил его вебмастер webmaster@belpsb.minsk.by




     Я  рассылаю  ежедневные  апдейты  по  почте  на  выделенные  адреса  по
договоренности с администраторами.

     Формат: uudecode - gzip - cpio

     Размер  -  1-7Мб  в письме. Поэтому сендмейл должен принимать письма не
менее чем в 8Мб за раз. В стандартном sendmail.cf обычно стоит max 1Mb

     На  приеме  надо  пропускать  приходящее  письмо сквозь скрипт, который
запускается под UID moshkow . (И ни в коем случае - не под root !!!)

     Сам  скрипт  можно прицепить на выделенный адрес либо через .procmailrc
или .forward или на /etc/aliases

     Иногда в sendmail.cf бывает запрещено исполнение скриптов
в форварде и алиасах. Убедитесь, что с этимне будет проблем.

     Адрес сообщить мне, я включу его в рассылку.



Пример возможного /usr/locale/sbin/script:
#!/bin/sh
TMP=/tmp/$$
mkdir $TMP
cd $TMP || exit 1

sed -e '/^begin [0-9]/ s%/%_%g' |\
uudecode

cd ~moshkow

if zcat $TMP/* > /dev/null ; then
  if zcat $TMP/* | cpio -it > /dev/null ; then
     zcat $TMP/* | cpio -idmv "public_html/*"
     rm -rf $TMP
     else echo bad archieve
     fi
   else echo bad gzip archieve
   fi | mail -s "mirror.firm.ru report" mirroradmin moshkow@ipsun.ras.ru

Last-modified: Sun, 10 Apr 2005 07:00:52 GMT
Оцените этот текст: