backup plugin by Terence J. Grant
Backup your site and configuration data to a file.
Last updated on 2009-03-16. Provides Admin.
Compatible with DokuWiki 2008-05-05.
Similar to zip.
It's not required, but please consider linking to this page or the main page from your site if you like this product.
As with any data backup tool, there is always a possibility for data loss– especially unintentionally.
Neither I nor this site will be held responsible for any data loss caused by this product.
So download and use at your own risk!
Before downloading or using this product, make sure you understand and accept the terms of the license.
After downloading, make sure to follow the install instructions or upgrading instructions below; trust me, they're worth reading.
Note: http://cloud.github.com/downloads/tatewake/dokuwiki-plugin-backup/backuptool-stable.tar.gz always points to the latest stable version!
Use the plugin manager to install, or…
<dokuwiki>/lib/plugins/
using git:
% cd <dokuwiki>/lib/plugins/ % git clone git://github.com/tatewake/dokuwiki-plugin-backup.git backup
Debian install (or probably any other distribution):
# cd /usr/share/dokuwiki/lib/plugins/ # wget http://cloud.github.com/downloads/tatewake/dokuwiki-plugin-backup/backup-stable.tar.gz # tar -xvzf backup-stable.tar.gz # chown -Rv 33 backup/
Note: http://cloud.github.com/downloads/tatewake/dokuwiki-plugin-backup/backup-stable.tar.gz always points to the latest stable version
This is a plugin for DokuWiki which enables you to backup the most important parts of your site; this includes all of your pages, all old revisions, meta data, subscriptions, media files (your downloads), as well as your plugins and templates.
This is in case, for some odd reason, your host accidentally loses all your files; it's happened to me personally twice, on two different hosts since I began using DokuWiki– and backing up manually can be quite a nightmare.
To access the plugin, make sure you're on the admin account, and click the admin button on your wiki site.
An entry named “Backup Tool” should be listed in the the available administrative tasks. Click it, and you should see something like the following image below:
Simply check the items you wish to backup, and uncheck the ones you don't. For instance, you may not care about old revisions of documents, so you don't have to include them if you don't want to.
Click the Create Backup button, and the process of backing up starts. For large sites, it may take some time; it may even time out– in which case you may wish to backup each section individually– though this is unlikely. It will usually take at least a little time for the page to respond, so please be patient.
The backup file is generated and put in the root of your media directory. So you're then able to download it from there, and you may wish to delete it afterwards.
As a plugin all you need to do is unpack the file into the lib/plugins/ directory (you should end up with a lib/plugins/backup folder.)
To upgrade, remove the original lib/plugins/backup folder, and install the new version as instructed above.
Major update!
Here's what's new:
I've finally gotten time to check the new ACL compatibility.
As it turns out, I was mistaken– ACL file names and structure have not changed, simply the interface to modify ACL has, and this does not affect backuptool for DokuWiki at all.
Therefore backuptool for DokuWiki will work regardless of the DokuWiki's version.
So in other words, the April 7, 2007 version will work, and is safe to use.
Hi everyone, let me state for the record that “tarlib”, which is part of DokuWiki's core, currently does not generate working tar files in all situations.
I've discussed this on the DokuWiki mailing list several times, and have filed (if I recall) at least two bug reports about it.
Here is a version that attempts to use tarlib (part of DW) to write the archive directly into the media folder. The tar file it creates for some reason seems to be corrupt (or at least it won't verify in my local archive manager, 7-zip.) I suspect it's either:
I'm not horribly sure but I can't guarantee I'll be able to fix it in a timely manner, so if someone would like to investigate, I'd appreciate it.
Download backuptool-tarlib-nonworking.zip
— Terence J. Grant 09/17/2006 00:04
I've done some testing since last night…
— Terence J. Grant 09/17/2006 12:29
A little better, but still has the same problems:
You'll need to make a “tmp” directory in your data directory and chmod it 777 to test it.
— Terence J. Grant 07/10/2008 03:34
Hi all, I've gone ahead and put a list of all the known issues below; each of which is solvable, but currently still outstanding. Feel free to help me complete these early– it'll result in a faster release and more time spent on other projects. — Terence J. Grant 07/29/2006 05:44
If you're aware of any important files I'm missing in the backup process, please list it below as file paths, thanks. — Terence J. Grant 07/29/2006 05:28
Hello, I would appreciate if your tool could also backup conf/mime.conf. Some plugins like freemind need to have changes in mime.conf.
Thank you.
deKesi
Anyone have an idea on how to display the page as each individual section completes? I believe I'm doing everything right in this regard, but obviously the sever still wishes to wait until the page is completely loaded. So any help on this would be appreciated. — Terence J. Grant 07/29/2006 05:28
For the archiving commands ('tar') things might be a little more complex. The plugin manager includes two PHP classes, tarlib and zip.lib, I only use them for extraction in the plugin manager but a quick look makes me think they can handle archive creation and compression.
Ok, I'll look into this as well. — Terence J. Grant 08/20/2006 20:42
My other ideas are:
* option to send the backup as part of its creation, i.e., the web browser will pop up its download window there and then and the admin can save the backup immediately.
Yeah, I agree… I believe this should be doable via a document.location.href JavaScript… or it could be delivered directly via the right combination of multipart-mixed headers, but frankly I don't know how to do the latter.— Terence J. Grant 08/20/2006 20:42
Its quite straight forward. The easiest way is to simply do a server side redirect to the backup file once its been created. Its also possible to send the data inline as an attachment. Both methods are described under header(). — Chris Smith 2006/08/21 19:44
* if a current backup exists, add option to only download that backup. For this, it might be necessary to be able to determine what file types are included in the backup.
Hmmm, I think keeping the current backup around (or accessible to anyone but superuser) would be a security risk… password hashes, pages with permissions, etc could all be compromised. — Terence J. Grant 08/20/2006 21:08
I wasn't thinking of it being generally available. Perhaps the installer could create a protected “backup” namespace in the media tree. Or perhaps it is a bad idea. — Chris Smith 2006/08/21 19:44
I'm prepared to help out with these changes if you don't mind.
Anything you'd like to do, feel free. I'll try to improve some things when I get a chance as well. — Terence J. Grant 08/20/2006 20:42
In reply to some of your other points above:
* `date "+%W"` included in the file name will add a week number. Doman dateto see the other format codes. e.g.'tar -rf backup-`date "+%W"`.tar '.$conf['olddir']You will probably need to escape the backticks or change the quote marks from double to single to ensure PHP passes them to the shell
I was thinking of using the PHP date function originally, since myself I do backups fairly irregularly. (Sometimes I'll do twice in a day if i've had some significant changes.) The only concern I had was regarding replacing slashes in the date with dashes or something — Terence J. Grant 08/20/2006 20:42
date will work too. Try something like,
"backup-".date("Ymd-Hi").".tar"
— Chris Smith 2006/08/21 19:44
* take a look at Andi's searchindex plugin. It uses continuous page updating to show its progress.
Okay, I'll take a look at that. — Terence J. Grant 08/20/2006 20:42
The plugin manager stores information about any plugin it installs, including the source URL. Update, simply attempts to retrieve and reinstall the plugin again from the same URL. At this time there is no intelligence behind it, i.e., it doesn't know if the plugin has been updated or even if the URL is still live. — Chris Smith 2006/08/21 19:44
Cheers — Chris Smith 2006/08/20 23:57
Thank you for your backup tool! Any plans to make automatically make daily/weekly backups or the option to send the backup to a certain mail address?
I personally don't have any plans myself for this– feel free to add options and send them to me (see svn for some tips.) Automated backups could be done with what's called a cron job, but most people don't have access to this.
As for mailing; I wouldn't know how to begin, though I suspect this might be easier. Again, contributions (within reason) are welcome.
— Terence J. Grant 08/22/2007 17:08
I have downloaded this plugin and all went okay, but when I process the backup I should find a back-up file in the root (“The backup file is generated and put in the root of your media directory”).
But there is no such file. What can be wrong? —FJH Langendam 08/20/2008
The file should be created in the “root of your media directory,” so this does not mean your “file system root,” this means the top level media directory.
In other words, it should be creating a file in your “data/media” directory. Is this not happening? — Terence J. Grant 08/20/2008 23:08
Dear Terence,
I've tried it again and although DokuWiki shows the name of the bu-file (DokuWiki-backup-20080821-220132.tar.bz2) it's not in the dir (httpdocs/doku/data/media). — FJH Langendam 08/21/2008
Hi FJH,
There's a link generated on the BackupTool page, I'd suggest using that to get the file.
I'd also suggest using the media manager to delete the file.
Hope that helps,
— Terence J. Grant 12/20/2008 17:03
Hi Terence and thanks for your updates of this plugin.
I've just launched a new wiki at some site the PHP of which announces availability of bz2 but fails on generating anything bz2-y (also old revisions cannot be generated with bz2, e.g.), so I had to hack the code to force gzip compression. Would you consider adding the compression-type to the configurable options? (So I don't have to hack again when there's an update of the plugin.) — Andreas Wagner 11/25/2008
Hi Andreas, yes, I'll add the option as time permits. — Terence J. Grant 12/20/2008 16:56
- Can this tool be used to migrate data from one instance of DokuWiki to another instance running on some other host?
- Does this tool work for Windows?
- (also side note: anyone know why my H2 is not being properly rendered by DokuWiki? Is the a maximum size to a page? Is there some syntax error somewhere above me?)
— Peter Thung 12/16/2008
Hi Peter,
Best of luck,
— Terence J. Grant 12/20/2008 16:56
— Peter Thung 01/22/2009
I think I may have answered it above.
— Peter Thung 01/22/2009
Hi, in admin.php line 225, where the file gets saved, the plugin does not respect the setting of savedir to find the media directory. I changed the path to: “$conf['savedir'].'/media/'” and now it works. I suppose this is the intended behaviour. If not, trying to save in the wrong place can give permission problems as well as saving in the wrong place.
thanks for this plugin… greets, naja
I get an “Access Denied” message in an XML file when requesting http://cloud.github.com/downloads/tatewake/dokuwiki-plugin-backup/backup-stable.tar.gz. :(
— Marcus Gnaß 10/20/2009
Same here, the link is not working. All the best, heinz
I also had problems finding it. Note name difference above good link: from backup → backuptool
_xxxx___cloud.github.com/downloads/tatewake/dokuwiki-plugin-backup/backup-stable.tar.gz
http://cloud.github.com/downloads/tatewake/dokuwiki-plugin-backup/backuptool-stable.tar.gz
Thanks for the plug-in,
Dave B
I get no errors or warnings until I try to click on the link where it says file not found. I also do not find it using FTP…(hosted on byethost.com)
— Mikael 11/09/2009