DokuWiki

It's better when it's simple

User Tools

Site Tools


tips:maintenance

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tips:maintenance [2016-09-23 16:11] – [Discussion] meta 213.61.58.138tips:maintenance [2023-10-10 20:28] (current) – Updated to fix errors with the fact if -e does not work for globs. staze
Line 2: Line 2:
    
 Here are some tips to automate some of the day-to-day maintenance needed or recommended for DokuWiki. Here are some tips to automate some of the day-to-day maintenance needed or recommended for DokuWiki.
 +
 +See also the plugins: [[plugin:cleanup|cleanup]] and [[plugin:clearhistory|clearhistory]]
  
 ===== Keep Blacklist up to date ===== ===== Keep Blacklist up to date =====
Line 9: Line 11:
 ===== Automatic cleanup script ===== ===== Automatic cleanup script =====
  
-It is recommended to set up some cleanup process for busy DokuWikis. The following [[wp>Bash (Unix shell)]] shell script serves as an example. It deletes old revisions from the [[:attic]], removes stale lock files and empty directories, and it cleans up the [[:caching|cache]]((For a discussion of cache maintenance see also the [[http://forum.dokuwiki.org/post/22265|forum discussion]].)).+It is recommended to set up some cleanup process for busy DokuWikis. The following [[wp>Bash (Unix shell)]] shell script serves as an example. It deletes old revisions from the [[:attic]], removes stale lock files and empty directories, and it cleans up the [[:caching|cache]]((For a discussion of cache maintenance see also the [[https://forum.dokuwiki.org/post/22265|forum discussion]].)).
  
 <file bash cleanup.sh> <file bash cleanup.sh>
 #!/bin/bash #!/bin/bash
  
-function cleanup()+cleanup()
 { {
     local data_path="$1"        # full path to data directory of wiki     local data_path="$1"        # full path to data directory of wiki
Line 20: Line 22:
  
     # purge files older than ${retention_days} days from attic and media_attic (old revisions)     # purge files older than ${retention_days} days from attic and media_attic (old revisions)
-    find "${data_path}"/{media_,}attic/ -type f -mtime +${retention_days} -delete+    find "${data_path}"/{media_,}attic/ -type f -not -name _dummy -mtime +"${retention_days}-delete
  
     # remove stale lock files (files which are 1-2 days old)     # remove stale lock files (files which are 1-2 days old)
Line 30: Line 32:
  
     # remove files older than ${retention_days} days from the cache     # remove files older than ${retention_days} days from the cache
-    if -"${data_path}"/cache/?/ ]+    if test -n "$(find "${data_path}"/cache/?/ -maxdepth 1 -print -quit &> /dev/null)"
     then     then
-        find "${data_path}"/cache/?/ -type f -mtime +${retention_days} -delete+        find "${data_path}"/cache/?/ -type f -not -name _dummy -mtime +"${retention_days}-delete
     fi     fi
 } }
 +
  
 # cleanup DokuWiki installations (path to datadir, number of days) # cleanup DokuWiki installations (path to datadir, number of days)
Line 81: Line 84:
  
 ==== Windows -- batch script ==== ==== Windows -- batch script ====
 +
 This is another Windows command shell script for maintaining your dokuwiki base on a Windows environment. This is another Windows command shell script for maintaining your dokuwiki base on a Windows environment.
 The script uses the free and open source utility find, which can be obtained via [[http://gnuwin32.sourceforge.net/]] The script uses the free and open source utility find, which can be obtained via [[http://gnuwin32.sourceforge.net/]]
Line 184: Line 188:
 Example: Restore Playground every 30 min: Example: Restore Playground every 30 min:
  
-  0,30 * * * * cp -pf /path/to/savedwiki/data/pages/playground/playground.txt /path/to/dokuwiki/data/pages/playground/+  0,30 * * * * cp -/path/to/savedwiki/data/pages/playground/playground.txt /path/to/dokuwiki/data/pages/playground/
  
 Example: Restore all pages in [[:namespace]] "wiki" every 30 min: Example: Restore all pages in [[:namespace]] "wiki" every 30 min:
  
-  0,30 * * * * cp -rpf /path/to/savedwiki/data/pages/wiki/ /path/to/dokuwiki/data/pages/wiki/+  0,30 * * * * cp -rf /path/to/savedwiki/data/pages/wiki/ /path/to/dokuwiki/data/pages/wiki/
  
 ==== Problems with CAPTCHA plugin ==== ==== Problems with CAPTCHA plugin ====
 +
 Using the CAPTCHA plugin and the recommended [[tips:maintenance#keeping_playground_clean|maintenance method]] to keep the playground clean, can result in the effect of being unable to edit the playground. Using the CAPTCHA plugin and the recommended [[tips:maintenance#keeping_playground_clean|maintenance method]] to keep the playground clean, can result in the effect of being unable to edit the playground.
  
Line 197: Line 202:
 Example: Deletes Playground metafiles every 30 min: Example: Deletes Playground metafiles every 30 min:
   0,30 * * * * rm -f /path/to/dokuwiki/data/meta/playground/playground.*   0,30 * * * * rm -f /path/to/dokuwiki/data/meta/playground/playground.*
 +
 ===== When cronjob is not available ===== ===== When cronjob is not available =====
  
Line 211: Line 217:
 ---- ----
  
-Could someone add the appropriate line for [[http://forum.dokuwiki.org/post/22265|cache maintenance]] to the Windows waRmZip script?+Could someone add the appropriate line for [[https://forum.dokuwiki.org/post/22265|cache maintenance]] to the Windows waRmZip script?
 ---- ----
 Does the [[plugin:cleanup|cleanup Plugin]] handle all the above tasks? Would it be recommended over running these scripts? Does the [[plugin:cleanup|cleanup Plugin]] handle all the above tasks? Would it be recommended over running these scripts?
Line 290: Line 296:
 Of course one could add a time constraint on it so that you don't use metadata immediately. Of course one could add a time constraint on it so that you don't use metadata immediately.
  
-Clemo+Clemo //2016/09/23 sometime//
  
tips/maintenance.1474639915.txt.gz · Last modified: 2016-09-23 16:11 by 213.61.58.138

Except where otherwise noted, content on this wiki is licensed under the following license: 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