DokuWiki

It's better when it's simple

Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:tips:maintenance

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.

1)
Eine Diskussion zur Pflege des Caches ist hier im forum zu finden (englisch).
de/tips/maintenance.txt · Zuletzt geändert: von 81.5.237.255

Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki