DokuWiki

It's better when it's simple

Инструменты пользователя

Инструменты сайта


ru:tips:maintenance

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Последняя версияСледующая версия справа и слева
ru:tips:maintenance [2012-05-19 08:53] – удалено 130.193.147.164ru:tips:maintenance [2016-10-19 10:25] – [Скрипт автоматической чистки] 62.141.80.189
Строка 1: Строка 1:
 +====== Обслуживание системы «ДокуВики» ======
 +
 +В этом  разделе собраны советы о том, как автоматизировать работы по ежедневному обслуживанию «ДокуВики».
 +
 +===== Поддерживайте актуальность «Чёрного списка» =====
 +
 +В статье «[[ru:blacklist|Чёрный список]]» описано как настроить cronjob для автоматического обновления Anti-Spam Blacklist.
 +
 +===== Скрипт автоматической чистки =====
 +
 +Для загруженных «ДокуВики» рекомендуется запустить несколько процессов чистки. Приведенный ниже скрипт может служить примером, того как это можно сделать. Он удаляет все ревизии старше 30 дней из пространства имен ''[[ru:attic|attic]]'' и удаляет повисшие файлы блокировки ((lock files)) и пустые директории.
 +
 +<code bash>
 +#!/bin/sh
 +
 +# set the path to your DokuWiki installation here
 +DOKUWIKI=/path/to/your/wiki
 +
 +# purge files older than 30 days from the attic
 +find $DOKUWIKI/data/attic/ -type f -mtime +30 -exec rm -f {} \;
 +
 +# remove stale lock files
 +find $DOKUWIKI/data/pages/ -name '*.lock' -type f -mtime +1 -exec rm -f {} \;
 +
 +# remove empty directories
 +find $DOKUWIKI/data/pages/ -depth -type d -empty -exec rmdir {} \;
 +</code>
 +
 +Для запуска этого скрипта автоматически настройте [[man>crontab(5)|cronjob]]. Следующий пример запускает скрипт каждый день в 00:05
 +
 +  5 0 * * *   /full/path/to/cleanup.sh
 +
 +Убедитесь, что вы все настроили правильно. Вы ведь не хотите удалить что-нибудь не то?
 +
 +===== Скрипт для работы с несколькими «ДокуВики» установленными на одном сервере  =====
 +
 +Следующий Bash-скрипт весьма полезен для работы с несколькими «ДокуВики» установленными на одном сервере. Его также можно рассматривать как пример того, как пользоваться командой [[man>find]] с опцией ''-print0'' и  командой [[man>xargs]].
 +
 +<code bash>
 +#!/bin/bash
 +
 +function 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
 +  find "$1"/attic/ -type f -mtime +$2 -print0 | xargs -0r rm -f
 +
 +  # remove stale lock files (if older than 2 days)
 +  find "$1"/pages/ -name '*.lock' -type f -mtime +2 -print0 | xargs -0r rm -f
 +
 +  # remove empty directories
 +  find "$1"/pages/ -depth -type d -empty -print0 | xargs -0r rmdir
 +}
 +
 +# cleanup my wiki 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
 +</code>
 +
 +===== Windows — warmzip =====
 +
 +Скрипт для удаления старых файлов в системе Windows --- [[http://winadmin.forret.com/|waRmZip]], доступен на  [[http://sourceforge.net/project/showfiles.php?group_id=88417|SourceForge]]. 
 +Напишите .bat-файл для вызова waRmZip, и поставьте его в расписание для записка каждый день. 
 +И как говорят: «убедитесь, что всё настроили правильно» ;-)
 +
 +Я принял к сведению предложение использовать ''waRmZip'' и написал следующий .bat-файл --- может и вам пригодится.
 +
 +Последняя версия «ДокуВики» сохраняет файлы блокировки в директории ''/data/locks'' (данный скрипт не отражает этого).
 +
 +Мой любимый способ запускать задания cron-a в Windows --- [[http://www.kalab.com/freeware/pycron/pycron.htm|PyCron]].
 +
 +
 +<code dos>
 +@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
 +</code>
 +
 +===== Поддерживайте чистоту в песочнице  =====
 +
 +Для поддержания чистоты в песочнице ((playground --- обычного места для экспериментов с вики)) и других статьях, запускайте по cron-у каждые 30 минут задачу, которая восстанавливает оригинальное содержание песочницы и других статей.
 +
 +Пример: Восстанавливает [[playground:playground|песочницу]] каждые 30 минут:
 +
 +  0,30 * * * * cp -rpf /path/to/savedwiki/data/playground/playground.txt /path/to/dokuwiki/data/pages/playground/
 +
 +Пример: Восстанавливает все статьи в  [[:namespace|пространстве имен]] "wiki" каждые 30 минут:
 +
 +  0,30 * * * * cp -rpf /path/to/savedwiki/data/pages/wiki/ /path/to/dokuwiki/data/pages/wiki/
 +
 +
  
ru/tips/maintenance.txt · Последнее изменение: 2016-11-11 02:41 — 81.95.20.130

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: 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