Diese Seite soll Empfehlungen/Erfahrungen zur Havest-Installation innerhalb des Math-Net Projektes von Halle festhalten. Installationshinweise finden Sie auch in
Harvest setzt ein UNIX-basiertes Betriebssystem voraus, eine Perl-Installation (i.allg. vorhanden) und einen laufenden HTTP-Server. Die Stellen der Installation, bei denen man die Hilfe des Superusers benötigt, werden mit 'root:' gekennzeichnet. Es sollte für das Harvestsystem einiger Speicherplatz zur Verfügung stehen.
Hinweis: Drucken Sie sich dieses Dokument am besten aus und lesen Sie alle Punkte. Für ein stabiles Harvestsystem spielt neben der Installation und dem Anlegen eines Harvestsystems auch die richtige Pflege und Konfiguration ein wichtige Rolle.
z.B. mit ln -s /usr/local/harvest /pub/www/Harvest
Exec /Harvest/cgi-bin/* /usr/local/harvest/cgi-bin/*
Wir wollen an dieser Stelle versuchen, das Anlegen eines neuen Harvest-Systems an einem Beispiel zu beschreiben. (Die Angaben in [ ] im Script zeigen an, was als Eingabe genommen wird, wenn Sie nur 'enter' drücken. '...' steht, wenn wir hier nicht den ganzen Output des Programms angeben.)
cd /usr/local/harvest/
RunHarvest
...
Do you want to continue? [yes]:
...
On which host does your WWW server run?:
[www.mathematik.uni-halle.de]: eigener WWW-Server
...
On which port does your WWW server run? [80]: Port 80 ist Standard
sonst Zahl eingeben
...
Please select a configuration [1]: 3
Enter a short description of this Harvest server [none]: Beispiel-Harvest
Enter a one-word description of this Harvest server [none]: mathe-my
Where do you want to install the Gatherer?:
[/usr/local/harvest/gatherers/mathe-my]:
On which port should the Gatherer run? [8500]: 8600
Where do you want to install the Broker?:
[/usr/local/harvest/brokers/mathe-my]:
On which port should the Broker run? [8601]:
Enter a password for the Broker administrative commands []: my-pass
Enter the list of URLs for the collections that you'd like to index.
The URLs that you enter below will be classified as 'RootNodes' and will
be enumerated (e.g. by recursive FTP directory listings for FTP URLs).
Terminate this list by entering a period ('.') on a line by itself.
Enter URL: .
...
Creating the Gatherer...
Successfully created the Gatherer!
Would you like to edit the Gatherer's workload specification?:
[no]:yes
Nun wird ein Editor aufgerufen, in dem Sie das Config File
mathe-my.cf
des Gatherers editieren können. Ein Beispiel ist:
# # mathe-my.cf - configuration file for the # Beispiel-Harvest Gatherer # # Created by on Tue Feb 24 19:12:25 MET 1998 # Gatherer-Name: Beispiel-Harvest Gatherer-Port: 8600 # Time-To-Live: 1309600 Refresh-Rate: 604800 # Top-Directory: /usr/local/harvest/gatherers/mathe-my <RootNodes> # Enter URLs for RootNodes here http://www.mathematik.uni-halle.de url=5000 depth=10 access=http host=1 http://www.mathematik.uni-halle.de/reports/shadows url=400 depth=1 access=http host=1 http://www.informatik.uni-halle.de/ url=5000 depth=10 access=http host=1 </RootNodes> <LeafNodes> # Enter URLs for LeafNodes here </LeafNodes>Verlassen Sie den Editor
Successfully created the Broker!
Running the Gatherer.
WARNING: For large sites, this may take several hours...
Done running the Broker!
Done.
Your Harvest Servers are now running. To access them, refer to
http://www.mathematik.uni-halle.de/Harvest/brokers/mathe-my/summary.html
Ihr Harvest-System mathe-my läuft nun. (Dies war nun ein Beispiel,
d.h. obige URL werden Sie nicht finden.)
http://hostname/Harvest/brokers/mathe-my/summary.html
erhalten Sie eine Übersicht zu Ihrem Broker und auch einen Verweis auf
eine Suchmaske.
Insbesondere kann man im File mathe-my.cf auch Filter angeben (die Filter-Dateien sollten dann während des Editierens von mathe-my.cf - z.B. in einem zweiten xterm - nach /usr/local/harvest/gatherers/mathe-my kopiert werden).
/usr/local/harvest/gatherers/mathe-my/RunGatherer Daten neu sammelnneu starten. Will man daß die Daten völlig neu geholt und aufgebaut werden, so führe man folgende Schritte vor dem Neustart aus:oder /usr/local/harvest/gatherers/mathe-my/RunGatherd Daten anbietenund /usr/local/harvest/brokers/mathe-my/RunBroker
cd /usr/local/harvest/gatherers/mathe-my/ rm -rf data tmp log.* cd /usr/local/harvest/brokers/mathe-my/ make clean
www.mathematik.uni-halle.de 8600 3 --
eingestellt. In bisherigen Harvest-Installationen (die hier angegebene haben
wir diesbezüglich noch nicht getestet), war diese Einstellung nicht
so günstig, einige Objekte wurden nach einiger Zeit nicht
richtig gefunden. Ersetzt man die 3 duch eine 2, so wird 'Full collection each time, with data compression' durchgeführt. Man kann dies nachträglich ändern, falls man mit dem Broker unzufrieden ist. (Full collection verbraucht mehr Zeit.)
statt host=1 schreibe man z.B. host=5,my-host-filterwobei in einer Datei my-host-filter steht:
# Host Filter file # Format is # Allow regex # Deny regex # Lines are evaulated in order; the first line to match is applied. # 'regex' can be a pattern for a domainname, or IP addresses. # Allow \.informatik\.uni-halle\.de Allow \.mathematik\.uni-halle\.de Deny .*Hiermit werden 5 WWW-Server dieser Domain abgesucht, d.h. in obigen Bsp. würde nur noch
<RootNodes> # Enter URLs for RootNodes here http://www.mathematik.uni-halle.de url=5000 depth=10 access=http host=3,my-host-filter </RootNodes>stehen müssen, da die anderen beiden Server von der Startseite dieses Servers erreicht werden.
statt url=5000 schreibe man z.B. url=5000,my-url-filterwobei in einer Datei my-url-filter steht:
# URL Filter file # Format is # Allow regex # Deny regex # Lines are evaulated in order; the first line to match is applied. # Deny /MR/ Allow \.html$ Allow \.htm$ Allow \.txt$ Deny .*Hiermit würden nur noch html-Files und txt-Files abgesucht werden. Oftmals ist es auch erwünscht PS- und DVI-Files auffindbar zu machen (Harvest indexiert auch den Inhalt dieser Files); dann müßte man die entsprechenden Einträge auch erlauben. Weiterhin werden Verzeichnisse, die im Pfad 'MR' enthalten nicht abgesucht.
http://www.mathematik.uni-halle.de/pub/archiv/harvest/Special(Harvest/cgi-bin/MathDC2.pl.cgi mit Harvest/cgi-bin/lib/MathN.cf für Suchmaske auf http://www.mathematik.uni-halle.de/reports/ benötigt)
crontab -e öffnet einen Editor, indem man seine crontab editieren kann (eventuell zuvor z.B. setenv EDITOR vi setzen, um einen speziellen Editor einzustellen).
Angenommen der Gatherer heißt mathe-my, hat eine 'Refresh-Rate' von einer Woche und eine 'Time-To-Live' von 2 Wochen. So sollte der Gatherer wöchentlich einmal gestartet werden. Dies wird z.B. durch folgenden Eintrag in der crontab erreicht (immer sonntags um 0.30 Uhr):
30 0 * * 0 /usr/local/harvest/gatherers/mathe-my/RunGathererDies liefert jedesmal eine Mail an fi-adm mit den Meldungen des Gatherers. Hat man sich davon überzeugt, daß alles stabil läuft kann man diese Mail durch
30 0 * * 0 /usr/local/harvest/gatherers/mathe-my/RunGatherer > /dev/null 2>&1vermeiden. Die 'Time-To-Life' ist auf die doppelte Zeit gesetzt, um bei einem eventuellen Rechnerausfall oder Scheitern des Cron-Jobs zu vermeiden, daß alle Objekte als veraltet (expired) gelöscht werden. Dies hat den Nachteil, daß eventuell alte Objekte noch als Ergebnis kommen. Verbesserungen hierfür uns bitte mitteilen !!!
/usr/local/harvest/gatherers/name/log.gatherer
/usr/local/harvest/gatherers/name/log.error
/usr/local/harvest/brokers/name/broker.out u.a. Broker anfragen
/usr/local/harvest/brokers/name/admin/LOG
sind Files, in denen das Harvest-System seine Arbeit protokolliert (ruhig mal rein schauen ...).
Das File
/usr/local/harvest/brokers/name/admin/LOGkann über das Interface
http://www-hostname/Harvest/brokers/name/admin/admin.html
mit 'Rotate-Log' neu angelegt werden.
Das Backup-File hiervon und auch die anderen aufgeführten Files sollten
von Zeit zu Zeit gelöscht werden. Evantuell kann man sich hierfür auch
ein Script bzw. crontab-Eintrag schreiben.
hinter 'export PATH' ergänze man ./mvlogmit dem ausführbaren Script /usr/local/harvest/gatherers/name/mvlog
#!/bin/csh
#
#
cd /usr/local/harvest/gatherers/name/
set today=`date +%y%m%d`
mv -f log.gatherer log.gatherer.${today}
mv -f log.errors log.errors.$today
if (-f core) then
rm core
rm -Rf tmp/*
endif
Somit werden bei einem Neustart des Gatherers neue Log-Files angelegt (d.h.
nach gewisser Zeit kann log.*.* gelöscht
werden) und eventuell vorhandene core-Files gelöscht.
-rwxr-xr-- 1 fi-adm fi-adm 1201 Feb 23 11:05 fi-adm-Harvestangelegt (bei uns in /usr/local/harvest/bin gestellt) mit dem Inhalt (Beispiel aus Halle, wo für die Region einige Systeme laufen):
#!/bin/sh
## File: cantor:/usr/local/harvest/bin/fi-adm-Harvest
## 23.02.98 /CE
#
# Starten aller relevanten Gatherer und Broker als user fi-adm
#
# Dieses File wird von /etc/rc2.d/S98startHarvest beim Reboot
# aufgerufen. Nicht loeschen!
#
/usr/local/harvest/gatherers/report/RunGatherd
/usr/local/harvest/brokers/report/RunBroker
/usr/local/harvest/gatherers/uni-halle/RunGatherd
/usr/local/harvest/brokers/uni-halle/RunBroker
/usr/local/harvest/gatherers/mathe-halle/RunGatherd
/usr/local/harvest/brokers/mathe-halle/RunBroker
/usr/local/harvest/gatherers/mathe-jena/RunGatherd
/usr/local/harvest/brokers/mathe-jena/RunBroker
/usr/local/harvest/gatherers/mathe-ilmenau/RunGatherd
/usr/local/harvest/brokers/mathe-ilmenau/RunBroker
/usr/local/harvest/gatherers/mathe-darmstadt/RunGatherd
/usr/local/harvest/brokers/mathe-darmstadt/RunBroker
/usr/local/harvest/gatherers/mathe-frankfurt/RunGatherd
/usr/local/harvest/brokers/mathe-frankfurt/RunBroker
/usr/local/harvest/gatherers/mathe-kassel/RunGatherd
/usr/local/harvest/brokers/mathe-kassel/RunBroker
/usr/local/harvest/gatherers/mathe-giessen/RunGatherd
/usr/local/harvest/brokers/mathe-giessen/RunBroker
/usr/local/harvest/gatherers/mathe-marburg/RunGatherd
/usr/local/harvest/brokers/mathe-marburg/RunBroker
exit 0
angelegt.
Damit diese als user fi-adm laufen verwende man im Startup-Script z.B. folgendes Kommando:
su - fi-adm -c /usr/local/harvest/bin/fi-adm-Harvest > /dev/null
Last modified: Mon May 11 15:48:50 1998
,
http://www.mathematik.uni-halle.de/MathNet/harvest.local.html