====== 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.