====== Wartung ======
Hier gibt es einige Tipps zur Automatisierung der täglichen Wartung des DokuWiki.
===== Die Blacklist aktuell halten =====
Wie man einen Cronjob für die Aktualisierung der Anti Spam Blacklist einrichtet, lässt sich unter [[:blacklist]] (englisch) nachlesen.
===== Automatisches Aufräumskript =====
Es wird empfohlen einen Aufräumprozess für sehr aktive DokuWikis einzusetzen.
Das folgende Shell Script liefert hierzu ein Beispiel. Es löscht alte Revisionen aus dem [[attic]], entfernt abgelaufene Lock-Files und leere Ordner und räumt den [[caching|Cache]] auf ((Eine Diskussion zur Pflege des Caches ist hier im [[http://forum.dokuwiki.org/post/22265|forum]] zu finden (englisch).)).
#!/bin/sh
cleanup() {
# $1 ... full path to data directory of wiki
# $2 ... number of days after which old files are to be removed
# purge files older than $2 days from the attic (old revisions)
find "$1"/attic/ -type f -mtime +$2 -print0 | xargs -0r rm -f
# remove stale lock files (files which are 1-2 days old)
find "$1"/locks/ -name '*.lock' -type f -mtime +1 -print0 | xargs -0r rm -f
# remove empty directories
find "$1"/pages/ -depth -type d -empty -print0 | xargs -0r rmdir
# remove files older than $2 days from the cache
find "$1"/cache/?/ -type f -mtime +$2 -print0 | xargs -0r rm -f
}
# cleanup DokuWiki installations (path to datadir, number of days)
# some examples:
cleanup /home/user1/htdocs/doku/data 256
cleanup /home/user2/htdocs/mywiki/data 180
cleanup /var/www/superwiki/data 180
Um dieses Script automatisch auszuführen kann man einen [[man>crontab(5)|cronjob]] einrichten.
Das folgende Beispiel ruft das Script jeden Tag 7 Minuten nach Mitternacht auf. Um es als unprivilegierter Benutzer auszuführen reicht es ''root'' zu entfernen.
7 0 * * * root /full/path/to/cleanup.sh
Man sollte an dieser Stelle noch einmal sicherstellen, dass alles richtig eingerichtet ist, um nicht die falschen Sachen zu löschen
==== Windows und warmzip ====
Ein nützliches Tool für ein Aufräumscript unter Windows ist [[http://winadmin.forret.com/|waRmZip]] welches auf [[http://sourceforge.net/project/showfiles.php?group_id=88417|SourceForge]] verfügbar ist.
Eine Möglichkeit ein Batch-Skript durch einen Cronjob unter Windows auszuführen, bietet folgendes Programm: [[http://www.kalab.com/freeware/pycron/pycron.htm|PyCron]]
@echo off
set waRmZip="c:\Program Files\waRmZip\waRmZip.wsf"
set wikiHome="c:\path\to\htdocs\wiki\data"
rem Move attic files older than 30 days to an archive location
%waRmZip% %wikiHome%\attic /ma:30 /md:%wikiHome%_archive\attic /r /q
rem Option: delete attic files older than 30 days
rem %waRmZip% %wikiHome%\attic /da:30 /dc /r /q
rem Delete empty attic directories; waRmZip requires the /da flag when using
rem /df, so add filter for *.zzz so /da doesn't remove any files
%waRmZip% %wikiHome%\attic /r /da:31 /df /fo:*.zzz /q
rem Remove stale lock files
%waRmZip% %wikiHome%\locks /da:1 /fo:*.lock /r /q
rem Remove empty directories
%waRmZip% %wikiHome%\pages /da:365 /df /fo:*.zzz /r /q
===== Den Playground sauberhalten =====
Um den [[playground:Playground]] oder andere Seiten sauber zu halten, kann auch ein Cronjob eingerichtet werden, der z. B. alle 30 Minuten die gespeicherte Version der Seite wiederherstellt.
Beispiel: Den Playground alle 30 Minuten wiederherstellen
0,30 * * * * cp -pf /path/to/savedwiki/data/pages/playground/playground.txt /path/to/dokuwiki/data/pages/playground/
Beispiel: Alle Seiten im [[namespace| Namensraum]] 'wiki' alle 30 Minuten wiederherstellen
0,30 * * * * cp -rpf /path/to/savedwiki/data/pages/wiki/ /path/to/dokuwiki/data/pages/wiki/
===== Ohne Cronjob =====
Wenn auf dem Server kein Cronjob verfügbar ist, kann auch das Plugin [[plugin:cronojob|cronojob]] benutzt werden.