De:GentooSpecial
Inhaltsverzeichnis
Spezielle Anpassungen / Konfigurationen von YaCy unter Gentoo
Die nachfolgenden Beispiele beziehen sich auf überwiegend auf die Verwendung mit dem YaCy-Overlay für Gentoo, dessen Pflege aber eingestellt wurde. Daher sollen Scripte nur als Anregung oder Ausgangsbasis für eigene Anpassungen dienen. Mehr zu YaCy unter Gentoo siehe De:GentooInstall |
YaCy mit RAM-Disks benutzen
Hier ein Beispiel wie beim Start von YaCy automatisch eine RAM-Disk für DATA/HTCACHE erzeugt und nach dem Stoppen wieder entfernt wird.
Wir legen zuerst ein Script im YaCy-Homeverzeichnis /opt/yacy-svn/yacy-gentoo-helper.sh
an. Es hat folgenden Inhalt:
#!/bin/bash TODO="$1" YACY_HOME="$2" case "$TODO" in start) mount | grep $YACY_HOME/DATA/HTCACHE &> /dev/null || mount -t tmpfs tmpfs -o nr_inodes=1M,noatime,noexec,nodev,nosuid $YACY_HOME/DATA/HTCACHE chown yacy: $YACY_HOME/DATA/HTCACHE ;; stop) umount $YACY_HOME/DATA/HTCACHE ;; esac
Unser Script wird nun ausführbar gemacht.
chmod +x /opt/yacy-svn/yacy-gentoo-helper.sh
Das Script wird nun in /etc/conf.d/yacy-svn
wie folgt eingetragen. Die Variable $YACY_HOME können wir hier direkt benutzen, diese zeigt auf das Home-Verzeichnis von YaCy, dort wo auch unsere Script ist.
PRE_START_CMD="${YACY_HOME}/yacy-gentoo-helper.sh start ${YACY_HOME}" POST_STOP_CMD="${YACY_HOME}/yacy-gentoo-helper.sh stop ${YACY_HOME}"
Die Variable $YACY_HOME wird auch per Kommandozeile an das Script übergeben, somit kann die Variable im Script selbst benutzt werden. Das Script legt nun beim Start von YaCy eine RAM-Disk an. Ohne weitere Angaben werden hier 50% vom RAM reserviert, aber erst bei Gebrauch wirklich belegt. Wer die Größe ändern möchte muß die optionale Mountoption size
z.B. wie folgt für 850 MB angeben:
... mount -t tmpfs tmpfs -o size=850M,nr_inodes=1M,noatime,noexec,nodev,nosuid ...
Nach dem Stoppen von YaCy durch das Initscript wird die RAM-Disk wieder entfernt.
Hier mein Script mit dem ich recht zufrieden bin, ohne Gewähr auf Performance-Gewinn o.ä.
#!/bin/bash TODO="$1" YACY_HOME="$2" case "$TODO" in start) mount | grep $YACY_HOME/DATA/HTCACHE &> /dev/null || mount -t tmpfs tmpfs -o nr_inodes=1M,noatime,noexec,nodev,nosuid $YACY_HOME/DATA/HTCACHE chown yacy: $YACY_HOME/DATA/HTCACHE mount | grep /var/log/yacy-svn &> /dev/null || mount -t tmpfs tmpfs -o nr_inodes=1M,noatime,noexec,nodev,nosuid /var/log/yacy-svn chown yacy: /var/log/yacy-svn test -e $YACY_HOME/DATA/YACYDB_BKP || cp -a $YACY_HOME/DATA/YACYDB $YACY_HOME/DATA/YACYDB_BKP mount | grep $YACY_HOME/DATA/YACYDB &> /dev/null || mount -t tmpfs tmpfs -o nr_inodes=1M,noatime,noexec,nodev,nosuid $YACY_HOME/DATA/YACYDB chown yacy: $YACY_HOME/DATA/YACYDB cp -a $YACY_HOME/DATA/YACYDB_BKP/* $YACY_HOME/DATA/YACYDB/ ;; stop) cp -a $YACY_HOME/DATA/YACYDB/* $YACY_HOME/DATA/YACYDB_BKP/ umount $YACY_HOME/DATA/HTCACHE umount $YACY_HOME/DATA/YACYDB umount /var/log/yacy-svn ;; esac
YaCy periodisch neu starten
Folgendes Script kann eingesetzt werden um YaCy unter Gentoo z.B. per cronjob regelmäßig neu starten zu lassen. Gegebenenfalls sind alle Vorkommen von yacy-svn
durch yacy
zu ersetzen. Das Script muss als User root aufgerufen werden.
#!/bin/bash /etc/init.d/yacy-svn stop &> /dev/null sleep 5 /etc/init.d/yacy-svn zap &> /dev/null /etc/init.d/yacy-svn start &> /dev/null
Parallelinstallationen und deren Betrieb
Eine Parallelinstallation wird nur erfahrenen Anwendern oder Entwicklern zu Test- und Entwicklungszwecken empfohlen. |
Es ist möglich net-misc/yacy und net-misc/yacy-svn parallel zu installieren und diese auch beide zu betreiben. Für den Betrieb der parallel installierten Versionen gibt es zwei Varianten, wobei keine von beiden wirklich empfehlenswert ist. Beide Varianten wurden erfolgreich vom Autor getestet.
mit unterschiedlichen DATA-Verzeichnissen
Es ist möglich net-misc/yacy und net-misc/yacy-svn gleichzeitig, aber getrennt voneinander, zu betreiben, hierbei ist jedoch zwingend ein jeweils anderer Port festzulegen. Die Konfiguration des Ports über das Webinterface kann aber nur erfolgen wenn nur eine Verion der beiden läuft, da beide sonst standartmäßig Port 8090 benutzen würden, was ein Start der zuletzt gestarteten Version unmöglich machen wird. Daher erst die eine Version starten, Port festlegen und diese wieder stoppen, anschliessend die andere Version starten, anderen Port festlegen und wieder stoppen. Anschliessend können beide Versionen parallel gestartet werden.
Zu beachten ist dass der gleichzeitige Betrieb eine doppelt so hohe Auslastung des Systems zu Folge haben wird.
mit gleichem DATA-Verzeichnis
Hat man beide Pakete installiert kann man durch die Befehle
cd /opt/yacy-svn rmdir DATA ln -sf ../yacy/DATA DATA
einen symbolische Link setzen, sodass net-misc/yacy-svn das DATA-Vereichnis von net-misc/yacy verwendet. Die Datei DATA/LOG/yacy.logging muß evt. einmal editiert werden, da jetzt beide Pakete diese zur Konfiguration benutzen und somit keine getrennten Verzeichnisse für Logfiles benutzen können. Hier sind folgende Zeilen zu editieren, als Beispiel wird vom Verzeichnis /var/log/yacy für Logfiles ausgegangen.
java.util.logging.FileHandler.pattern = /var/log/yacy/yacy%u%g.log de.anomic.http.httpdProxyHandler.logging.FileHandler.pattern = /var/log/yacy/proxyAccess%u%g.log
Somit werden beide Varianten mit einem DATA-Verzeichnis betrieben. Hierbei ist jedoch durch den Anwender sicher zu stellen dass nur jeweils net-misc/yacy oder net-misc/yacy-svn gestartet werden. Sollten beide gleichzeitig laufen wird dies eine Beschädigung der Datenbank zu Folge haben.
Zu beachten ist das net-misc/yacy-svn Änderungen an der Datenbank oder an Konfigurationsdateien in Verzeichnis DATA vornehmen könnte, welche nicht kompatibel zu net-misc/yacy sind und somit der spätere Start von net-misc/yacy fehlschlagen, sowie die Datenbank zerstören, könnte. Das Erstellen eines Backups des DATA-Verzeichnisses wird daher vor jedem Start einer neuen SVN-Version empfohlen.