「運用」に戻る

DokuWikiで不要なファイルを自動削除(メンテナンス)



ja:tips:maintenanceに書かれているように必要に応じて、メンテナンスを実施しましょう。

削除対象

削除対象 説明
<dokuwiki>/data/attic/ 以前のリビジョン
個人でDokuWikiを利用していたりする場合、削除しないか。期間を長くしていいと思います。

容量の確認

削除しようか検討しているなら、ディレクトリの容量を確認してから、削除するか決めましょう。

# cd 略/data
# du -sh *
実行例
$ du -sh *
4.0k    _dummy
 26M    attic
 48M    cache
 20k    deleted.files
 28k    formplugin
600k    index
8.0k    locks
 48k    media
8.0k    media_attic
 12k    media_meta
8.2M    meta
2.2M    pages
8.0k    security.png
 12k    security.xcf
8.0k    tmp


シェルの例

1サイト用のシェル

#!/bin/sh
 
# DokuWiki のインストールパスを設定
DOKUWIKI=/path/to/your/wiki
 
# 365 日以上経過したファイルを屋根裏部屋(attic)から削除
find $DOKUWIKI/data/attic/ -type f -mtime +365 -exec rm -f {} \;
 
# 古くなったロックファイルを削除
find $DOKUWIKI/data/locks/ -name '*.lock' -type f -mtime +1 -exec rm -f {} \;
 
# 空のディレクトリを削除
find $DOKUWIKI/data/pages/ -depth -type d -empty -exec rmdir {} \;

複数サイト用のシェル

#!/bin/sh
 
cleanup() {
 
  # $1 ... Wiki のデータディレクトリのフルパス
  # $2 ... 古いファイルが削除されるまでの保持日数
 
  # $2 日以上経過したファイルを屋根裏部屋から削除
  find "$1"/attic/ -type f -mtime +$2 -print0 | xargs -0r rm -f
 
  # 古くなった (2 日以上経過した) ロックファイルを削除
  find "$1"/locks/ -name '*.lock' -type f -mtime +2 -print0 | xargs -0r rm -f
 
  # 空のディレクトリを削除
  find "$1"/pages/ -depth -type d -empty -print0 | xargs -0r rmdir
}
 
# インストールした Wiki の掃除 (データディレクトリへのパス、日数)
# 利用例:
 
cleanup /home/user1/htdocs/doku/data 356
cleanup /home/user2/htdocs/mywiki/data 3650
cleanup /var/www/superwiki/data 36500

cron登録

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


参考







「運用」に戻る