Easy Windows MoinMoin Backup

Backing up your wiki server is important, in case of an event like a hard drive crash. However, since the wiki maintains it's own built-in version control, we don't need to worry about a sophisticated rotating backup strategy. We just need the data files. A simple scheduled Windows .bat file script will do the trick.

Prerequisites & Requirements

Download and install Microsoft's Windows Resource Kit Tools - While these tools say Windows 2003, they are backwards compatible. I successfully and routinely use these commands on Windows 2000 Workstation.

We will be changing the extension of a file from .txt to .bat so it is important that you have "Show all file extensions" turned on.

Create a backup destination

We need a destination to copy these files. It should be a location separate from the server itself, so that you could quickly relocate the data to a new server if you need to. This could be a shared folder on a network computer, or an external USB drive. In the example below, I'm going to set up to back up to a networked volume. If you are using an external drive, simply substitute the drive letter (and, you get to skip the steps for creating a shared folder below).

Create a shared folder on a networked machine (different than your wiki server). The exact steps are beyond the scope of this document, but here's a few hints:

Create a new folder, call it something appropriate like "wiki-backup". Avoid using spaces, as they can break the script.

right-click on a new "wiki-backup" folder, select "sharing" and share the folder.

On Windows XP, the default permissions are "read only". Remove the 'Everyone' group, and add a specific domain user such as domain\administrator (we'll use this user credentials below). Change the permissions to 'Full' for this user.

Further secure the folder according to your network policy, if needed.

Create the Backup Script

We'll be using Robocopy from the Windows Resource Kit Tools that you installed from the Prerequisites section above. Robocopy is Microsoft's commandline utility that supercedes all prior versions of copy and xcopy commandline commands. Robocopy is abbreviated for Robust File Copy, and offers more copy options, more flexibility, fixes shortcomings in copy/xcopy (such as long pathname lengths), and of course offers better robustness. Inexplicably, it does not come with Windows.

Using Notepad.exe or similar text editor, create a new file similar to below (you will have to modify the parameters to match your set-up (see Parameters Explained below)):

Save the file as "wiki-backup.bat" (make sure it doesn't have .txt, of course)

Parameters Explained:

Full Robocopy documentation can be found in the robocopy.doc included in the Resource Kit.

d:\robocopy\robocopy.exe - location of the robocopy.exe. (As in the example above, I typically move Robocopy somewhere more convenient (less typing, avoid using spaces).

"d:\mywiki" - source directory

"\\backupserver\wiki-backup\" - destination directory on a different networked machine.

/LOG+:\\backupserver\logs\moin-backup.log - running log of your backups (I typically have my backup scripts write their logs into a common folder on the backup server, so that I can easily check them all at once. If you mimic this script exactly, you will have to create another shared folder named 'logs' on the backupserver (and set permissions, like above)).

/XF *.pyc - exclude files ending in .pyc

/MIR - mirrors the destination to the source directory (this means that files/directories deleted in source will also be deleted in copy).