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

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


ru:tips:maintenance

Различия

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

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

Следующая версия
Предыдущая версия
Следующая версия справа и слева
ru:tips:maintenance [2009-09-15 13:58]
93.91.4.119 created
ru:tips:maintenance [2016-11-11 02:41]
81.95.20.130 [Windows — warmzip] опечатка
Строка 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/
  
-В этом разделе собраны советы о том, как автоматизировать работы по ежедневному обслуживанию DokuWiki. 
  
  
ru/tips/maintenance.txt · Последнее изменение: 2016-11-11 02:41 — 81.95.20.130