Inhaltsverzeichnis
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 Cache auf 1).
- cleanup.sh
#!/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) cleanup /var/opt/dokuwiki/data 1
Um dieses Script automatisch auszuführen kann man einen 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 waRmZip welches auf SourceForge verfügbar ist.
Eine Möglichkeit ein Batch-Skript durch einen Cronjob unter Windows auszuführen, bietet folgendes Programm: PyCron
- dw-cleanup.bat
@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 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 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 cronojob benutzt werden.