Home | Gifts |
This is a solution to backup, restore and upgrade TWiki sites. It can be used via browser and on the command line. This plugin is pre-installed in TWiki-5.1 and later releases; it can be installed in older TWiki releases as low as TWiki-2001-09-01 (Athens Release) to easily create a backup that can be restored on a new TWiki release. This offers an easy upgrade path for TWiki.
This plugin backs up page data, attachment data, the plugin workspace area and the TWiki configuration. However, it does not backup the TWiki engine, additional plugins and skins you might have installed. It is recommended to do a manual backup of the whole twiki directory after installing plugins and skins.
The backup and restore functionality is restricted to members of the TWikiAdminGroup.
Once configured, visit the BackupRestoreConsole to:
Screenshot of Backup & Restore Console, overview:
The TWikiUpgradeGuide describes how to manually upgrade TWiki. It is much easier to use the BackupRestorePlugin to do a TWiki upgrade. Follow these steps:
twiki-backup-2025-03-15-08-25.zip
in the backup directory (default /tmp
).
Screenshot of Backup & Restore Console, detail view of very old TWiki-01-Sep-2001 backup:
The backuprestore
utility can be used to create a backup (scheduled or manually), to copy a backup and to check on the status of the backup process.
Command | Description |
---|---|
./backuprestore status |
Show backup status. Returns backup_status: 1 if web-based backup is in progress. |
./backuprestore create_backup |
Create a backup. This is done without a background daemon process, e.g. the script returns when the backup is done. |
./backuprestore download_backup <name.zip> |
Dump a backup file to STDOUT. If called as CGI script, download a backup file. |
Important Notes:
apache
, nobody
, www-data
, wwwrun
or the like, and depends on the webserver configuration.
twiki/bin
directory before executing the backuprestore
utility.
Scheduled backups can be done with a cron job. Example crontab entry that creates a backup at 10 minutes past midnight every Sunday:
10 0 * * 0 (cd /path/to/twiki/bin; ./backuprestore create_backup >/dev/null 2>&1)
Make sure the plugin is configured properly before creating backups. The backup destination can be local or remote. If remote, the remote server needs to be mounted on the TWiki server via NFS or the like.
{Plugins}{BackupRestorePlugin}{BackupDir}
- Backup destination directory. Default: /tmp
.
{Plugins}{BackupRestorePlugin}{KeepNumberOfBackups}
- keep number of backups (e.g. delete old backups), 0 to keep all. Default: 7
{Plugins}{BackupRestorePlugin}{TempDir}
- temp directory. Default: /tmp
{Plugins}{BackupRestorePlugin}{createZipCmd}
- create zip command. Default: /usr/bin/zip -r
{Plugins}{BackupRestorePlugin}{listZipCmd}
- list zip content command. Default: /usr/bin/unzip -l
{Plugins}{BackupRestorePlugin}{unZipCmd}
- unzip command. Default: /usr/bin/unzip -o
{Plugins}{BackupRestorePlugin}{Debug}
- debug flag. Default: 0
{Plugins}{BackupRestorePlugin}{BackupDir}
configure setting.
twiki-backup-2025-03-15-08-25.zip
- date based names.
data/*
- all data and logs.
pub/*
- all attachments.
working/*
- working data.
working/BackupRestorePlugin/LocalSite.cfg
- TWiki configuration file (if found).
working/BackupRestorePlugin/LocalLib.cfg
- TWiki lib file (if found).
working/BackupRestorePlugin/twiki.conf
- Apache config file (if found).
working/BackupRestorePlugin/version.txt
- contains the TWiki version number of the backup. Used to intelligently restore backup to newer TWiki version. Example: version: TWiki-5.1.0
short: 5.1
working/BackupRestorePlugin/version-long-TWiki-5.1.0.txt
- file with TWiki version in filename
working/BackupRestorePlugin/version-short-5.1.txt
- file with TWiki short-version in filename, name version-short-<major>.<minor>.txt
This section is only relevant to plugin developers. This plugin handles a %BACKUPRESTORE{"..."}%
variable to perform all web-based operations. The variable is used in the BackupRestoreConsole page.
%BACKUPRESTORE{"..."}%
parameters:
Parameter | Explanation | Default |
---|---|---|
action="..." |
Action to take: • "" (empty) - show backup overview console. • "backup_detail" - show backup detail console. • "create_backup" - start new backup. • "cancel_backup" - cancel backup in progress. • "delete_backup" - delete a backup. • "restore_backup" - restore from a backup. • "status" - show backup status (1: backup in progress). • "debug" - debug and diagnostics. |
"" (empty) |
file="..." |
Name of backup file to take action. The file parameter is required for the following actions: "backup_detail" , "delete_backup" and "restore_backup" . |
"" |
This plugin starts a daemon (background process) when a backup is started. Status is checked via Ajax calls. Once the new backup is finished it shows up in the backup table.
{Plugins}{BackupRestorePlugin}{BackupDir}
directory.
This plugin has been reasonably tested. If you find any issues please file a bug report at TWikibug:BackupRestorePlugin.
This plugin is distributed under GPL (GNU General Public License) in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the TWiki server. This plugin is pre-installed in TWiki-5.1.0 and newer.
BackupRestorePlugin.zip
in your twiki installation directory. Content: File: | Description: |
---|---|
bin/backuprestore | CGI/command line utility |
data/TWiki/BackupRestorePlugin.txt | Plugin topic |
data/TWiki/BackupRestoreConsole.txt | Backup and restore console topic |
lib/TWiki/Plugins/BackupRestorePlugin.pm | Plugin Perl module |
lib/TWiki/Plugins/BackupRestorePlugin/CaptureOutput.pm | Perl module |
lib/TWiki/Plugins/BackupRestorePlugin/Core.pm | Core backup module |
lib/TWiki/Plugins/BackupRestorePlugin/ProcDaemon.pm | Perl module |
twiki/lib/LocalSite.cfg
and customize as needed:# Path to backup destination directory. Can be a volume mounted to the file system. $TWiki::cfg{Plugins}{BackupRestorePlugin}{BackupDir} = '/tmp'; # Keep number of backups (e.g. delete old backups), 0 to keep all. $TWiki::cfg{Plugins}{BackupRestorePlugin}{KeepNumberOfBackups} = '7'; # Path to temp directory, used by BackupRestorePlugin daemon for temporary data. $TWiki::cfg{Plugins}{BackupRestorePlugin}{TempDir} = '/tmp'; # Path to zip command with options to recursively archive files and directory. $TWiki::cfg{Plugins}{BackupRestorePlugin}{createZipCmd} = '/usr/bin/zip -r'; # Path to unzip command with options to list all files. $TWiki::cfg{Plugins}{BackupRestorePlugin}{listZipCmd} = '/usr/bin/unzip -l'; # Path to unzip command with options to unzip all files with option to overwrite existing files. $TWiki::cfg{Plugins}{BackupRestorePlugin}{unZipCmd} = '/usr/bin/unzip -o'; # Debug plugin. See output in data/debug.txt $TWiki::cfg{Plugins}{BackupRestorePlugin}{Debug} = 0;
twiki/lib/LocalSite.cfg
file with above $TWiki::cfg
settings and end the file with: 1;
twiki/bin/setlib.cfg
file with this content:my $twikiLibPath = "/path/to/your/twiki/lib"; unshift @INC, $twikiLibPath; 1;
working
directory in the twiki
root (same level as twiki/lib
), and set ownership to the webserver user.
Plugin Author: | TWiki:Main.PeterThoeny![]() ![]() |
Copyright: | © 2011-2012 TWiki:Main.PeterThoeny![]() © 2011-2012 TWiki:TWiki.TWikiContributor ![]() © 2004, 2005 Simon Flack (for CPAN:IO::CaptureOutput ![]() © 2007, 2008 David Golden (for CPAN:IO::CaptureOutput ![]() © 1997-2011 by Earl Hood and Detlef Pilzecker (for CPAN:Proc::Daemon ![]() |
License: | GPL (GNU General Public License![]() |
Plugin Version: | 2012-09-03 |
Change History: | |
2012-09-03: | TWikibug:Item6837![]() |
2012-01-13: | TWikibug:Item6796![]() |
2011-12-19: | TWikibug:Item6799![]() |
2011-09-13: | TWikibug:Item6796![]() |
2011-09-05: | TWikibug:Item6795![]() |
2011-08-17: | TWikibug:Item6793![]() |
2011-08-16: | TWikibug:Item6793![]() |
2011-08-15: | TWikibug:Item6793![]() |
2011-08-12: | TWikibug:Item6631![]() |
TWiki Dependency: | $TWiki::Plugins::VERSION 1.0 |
CPAN Dependencies: | none ( Proc::Daemon included as TWiki::Plugins::BackupRestorePlugin::ProcDaemon ) ( IO::CaptureOutput included as TWiki::Plugins::BackupRestorePlugin::CaptureOutput ) |
Other Dependencies: | GNU zip and unzip command line utilities |
Perl Version: | 5.005 |
TWiki:Plugins.Benchmark![]() |
GoodStyle nn%, FormattedSearch nn%, BackupRestorePlugin nn% |
Plugin Home: | http://TWiki.org/cgi-bin/view/Plugins/BackupRestorePlugin![]() |
Feedback: | http://TWiki.org/cgi-bin/view/Plugins/BackupRestorePluginDev![]() |
Appraisal: | http://TWiki.org/cgi-bin/view/Plugins/BackupRestorePluginAppraisal![]() |
Related Topics: BackupRestoreConsole, TWikiPreferences, TWikiPlugins, AdminToolsCategory
Revision r3 - 2012-09-04 - 08:01:23 - TWikiContributor | Edit |