DokuWiki

It's better when it's simple

Narzędzia użytkownika

Narzędzia witryny


pl:tips:maintenance

Konserwacja

Oto kilka porad, jak zautomatyzować niektóre codzienną obsługę wymaganą lub zalecaną przez DokuWiki.

Utrzymuj czarne listy w aktualności

Patrz czarna lista jak ustawić zadanie cron by aktualizować na bieżąco filtry antyspamowe.

Skrypt automatycznego czyszczenia

Zaleca się ustawienie pewnych procesów czyszczenia ruchliwych DokuWikis. Następujący skrypt powłoki Bash (powłoka Unix) posłuży za przykład. Usuwa on poprzednie wersje z archiwum, usuwa złamane pliki blokad i puste foldery, oraz czyści pamięć podręczną1).

cleanup.sh
#!/bin/bash
 
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"/{attic,cache,index,locks,media,meta,pages,tmp}/ \
    -mindepth 1 -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

Aby uruchomić go automatycznie, ustaw zadanie cron. Następujący przykład wywołuje skrypt każdego dnia 7 minut po północy. Aby uruchomić jako użytkownik inny niż root, usuń root.

7 0 * * *   root  /full/path/to/cleanup.sh

Upewnij się, że wszystko zostało poprawnie ustawione - nie chciałbyś chyba usunąć nie tych rzeczy?

Windows -- warmzip

Skrypt czyszczący poprzednie wersje plikóww systemach Windows to waRmZip, dostępny ze strony SourceForge. Napisz plik wsadowy by go wywołać i zaplanuj codzienne zadanie w harmonogramie. I jak to się mówi: 'Trzeba pamiętać o ustawieniu wszystkiego poprawnie' ;-)

Skorzystałem z powyższej sugestii odnośnie waRmZip i napisałem plik wsadowy - może on pomoże.

Moim ulubionym sposobem uruchamiania zadań w Windows jest 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

Utrzymywanie piaskownicy w czystości

By utrzymywać piaskownicę i inne strony w czystości, użyj zadania cron na przykład co 30 minut, które odtwarza oryginalną zawartość piaskownicy i innych stron.

Przykład: Przywróć zawartość piaskownicy co 30 min:

0,30 * * * * cp -pf /path/to/savedwiki/data/pages/playground/playground.txt /path/to/dokuwiki/data/pages/playground/

Przykład: Przywróć wszystkie strony w przestrzeni nazw „wiki” co 30 min:

0,30 * * * * cp -rpf /path/to/savedwiki/data/pages/wiki/ /path/to/dokuwiki/data/pages/wiki/

Gdy cron jest niedostępny

Jeśli hosting nie udostępnia możliwości ustalenia harmonogramu zadań, rozważ użycie wtyczki cronojob.

Discussion

Could you please provide PHP versions of these scripts to use with the cronojob plugin?


Regarding the above cleanup script which uses file modification time (mtime), wouldn't it be safer to use the timestamp in the filename to determine if a file in the attic should be deleted or not?

On the one hand, I'd say it could be done but it's of course trickier to set up. For many installations it will be fine to use mtime. On the other hand, some might want to make sure they clean up old files no matter what (e.g. files left after a crash or critical PHP error).


Could someone add the appropriate line for cache maintenance to the Windows waRmZip script?

1)
Przejrzyj również dyskusję na forum dotyczącą konserwacji pamięci podręcznej.
pl/tips/maintenance.txt · ostatnio zmienione: 2011-12-14 01:59 przez 78.8.119.221

Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: 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