DokuWiki

It's better when it's simple

用户工具

站点工具


zh:tips:maintenance

维护

这里有一些提示,是有关于自动化 DokuWiki 一些日常的必要维护。

不断更新黑名单

参见黑名单关于如何保持反垃圾邮件黑名单,并建立一个例行性


工作排程。

自动清理脚本-For Unix/Linux

我们建议你为不停工作的 Dokuwiki 建立一个清理进程。下面这个脚步就是一个例子。它删除所有超过30天的修改记录,并删除陈旧的锁文件和空目录。

#!/bin/sh
 
# 这里设置你的 DokuWiki 的安装路径
DOKUWIKI=/path/to/your/wiki
 
# 清理超过30天的修改记录
find $DOKUWIKI/data/attic/ -type f -mtime +30 -exec rm -f {} \;
 
# 删除无效的锁文件
find $DOKUWIKI/data/pages/ -name '*.lock' -type f -mtime +1 -exec rm -f {} \;
 
# 删除空目录
find $DOKUWIKI/data/pages/ -depth -type d -empty -exec rmdir {} \;

要让它自动运行,需建立一个例行性工作排程。下面这个例子会在每天 0:05 时刻运行该脚本。

5 0 * * *   /full/path/to/cleanup.sh

确保一切都不要出错,你也不想删错文件对吧?

多个安装实例的清理脚本

下面这个脚本更适用于安装了多个 DokuWiki 的情况。同时展示了 find-print0 选项和 xargs 的使用方法。

#!/bin/sh
 
cleanup() {
 
  # $1 ... wiki 的 data 目录的完整路径
  # $2 ... 天数
 
  # 清理 $2 天之前的旧修改记录
  find "$1"/attic/ -type f -mtime +$2 -print0 | xargs -0r rm -f
 
  # 清除无效的锁文件(2天之前的旧文件)
  find "$1"/pages/ -name '*.lock' -type f -mtime +2 -print0 | xargs -0r rm -f
 
  # 删除空目录
  find "$1"/pages/ -depth -type d -empty -print0 | xargs -0r rmdir
}
 
# cleanup [data目录的路径] [天数]
# 一些例子:
 
cleanup /home/user1/htdocs/doku/data 256
cleanup /home/user2/htdocs/mywiki/data 180
cleanup /var/www/superwiki/data 180

Windows 清理- 使用warmzip

Windows系统下有一清理旧文件的脚本 waRmZip,脚本可以从here on SourceForge获得。编写一个批处理文件调用它,然后添加为每天计划任务。但是谨记,保证以上所做的一切都要准确。;-)

根据上述建议,我依照“waRmZip”,写了如下脚本(请根据实际情况下载waRmZip并改写waRmZip.wsf以及wikiHome的路径,另存为clean.bat后运行) 最新版本的DokuWiki 将锁定文件存在/data/locks目录,上面的shell脚本中没有处理,该batch脚本中已经加入

  cron 也许能建立更好的维护脚本,以后有时间我会加入

My favorite way to run cron jobs on Windows is 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

定期清理沙盘

MBT Shoes MBT

为了使 wiki 的沙盘和其他的页面保持清洁,可以使用一个30分钟循环地例行工作排程,将沙盘和其他页面还原到它们的原始内容。

例子:每30分钟还原 Playground 一次:

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

例子:每30分钟还原 “wiki” 命名空间的所有页面:

0,30 * * * * cp -rpf /path/to/savedwiki/data/pages/wiki/ /path/to/dokuwiki/data/pages/wiki/ 
zh/tips/maintenance.txt · 最后更改: 2014-10-26 16:23 由 123.117.81.97

除额外注明的地方外,本维基上的内容按下列许可协议发布: 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