.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" ======================================================================== .\" .IX Title "DUPLY 1" .TH DUPLY 1 "2011-09-06" "Version 1.5.5" "duply documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" duply \- a shell frontend to duplicity for simplified backups .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBduply\fR \fIprofile\fR \fBcreate\fR .PP \&\fBduply\fR \fIprofile command [options ...]\fR .PP \&\fBduply\fR \fIprofile command[_command_...] [options ...]\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBDuply\fR deals as a wrapper for the mighty duplicity magic. It simplifies running duplicity with cron or on command line by: .PP .Vb 4 \& \- keeping recurring settings in profiles per backup job \& \- enabling batch operations eg. backup_verify_purge \& \- executing pre/post scripts for every command \& \- precondition checking for flawless duplicity operation .Ve .PP For each backup job one configuration profile must be created. The profile folder will be stored under \fI~/.duply/ (where '~' is the current users home directory). .PP \&\fIHint\fR: If the folder \fI/etc/duply\fR exists, the profiles for the super user root will be searched and created there. .SH "USAGE" .IX Header "USAGE" First time usage (profile creation): .PP .Vb 1 \& duply create .Ve .PP General usage in single mode (see \s-1EXAMPLES\s0): .PP .Vb 1 \& duply [ ...] .Ve .PP General usage in batch mode joining commands with '_' (see \s-1EXAMPLES\s0): .PP .Vb 1 \& duply _[_...] [ ...] .Ve .PP Non \fBduply\fR options are passed on to duplicity (see \s-1OPTIONS\s0). All conf parameters can also be defined in the environment instead. .SH "PROFILE" .IX Header "PROFILE" .SS "location for profiles" .IX Subsection "location for profiles" Indicated by a profile name i.e. \fIsample\fR, which is resolved to \&\fI~/.duply/sample\fR ('~' expands to environment variable \f(CW$HOME\fR). .PP Superuser root can place profiles under \fI/etc/duply\fR if the folder is manually created before running duply. .PP \&\s-1ATTENTION:\s0 If \fI/etc/duply/\fR is created, old profiles under \fI/root/.duply/\fR have to be moved manually to the former or will cease to work. .SS "using profiles" .IX Subsection "using profiles" Usually only the profile name will be used: .PP .Vb 1 \& duply humbug backup .Ve .PP Alternatively a \fIpath\fR might be used. This might be useful for quick testing, restoring or exotic locations. Shell expansion should work as usual: .PP .Vb 1 \& duply ~/.duplytest/humbug backup .Ve .PP \&\s-1ATTENTION:\s0 The path must contain at least one '/', e.g \fI./test\fR instead of only \fItest\fR. .SH "COMMANDS" .IX Header "COMMANDS" .IP "\fBusage\fR" 8 .IX Item "usage" Get usage help text. .IP "\fBcreate\fR" 8 .IX Item "create" Creates a configuration profile. .IP "\fBbackup\fR" 8 .IX Item "backup" Backup with pre/post script execution (as batch the same as: pre_bkp_post) .RS 8 .IP "\(bu" 2 as \fIfull\fR backup if parameter full_if_older matches or no earlier backup is found. .IP "\(bu" 2 as \fIincremental\fR backup in all other cases. .RE .RS 8 .RE .IP "\fBbkp\fR" 8 .IX Item "bkp" As above but without executing pre/post scripts. .IP "\fBfull\fR" 8 .IX Item "full" Force full backup. .IP "\fBincr\fR" 8 .IX Item "incr" Force incremental backup. .IP "\fBpre\fR" 8 .IX Item "pre" Execute only script '/pre' (for debugging purposes). .IP "\fBpost\fR" 8 .IX Item "post" Execute only script '/post' (for debugging purposes). .IP "\fBlist\fR \fI[age]\fR" 8 .IX Item "list [age]" List all files in backup (as it was at \fIage\fR, default: now). .IP "\fBstatus\fR" 8 .IX Item "status" Prints backup sets and chains currently in repository. .IP "\fBverify\fR" 8 .IX Item "verify" List files changed since latest backup. .IP "\fBpurge\fR \fI[\-\-force]\fR" 8 .IX Item "purge [--force]" Shows outdated backup archives (older than \f(CW$MAX_AGE\fR). Option \fI\-\-force\fR delete these files. .IP "\fBpurge-full\fR \fI[\-\-force]\fR" 8 .IX Item "purge-full [--force]" Shows outdated backups (more than \f(CW$MAX_FULL_BACKUPS\fR), the number of \&\fIrecent\fR full backups and associated incrementals to keep. Option \fI\-\-force\fR delete these files. .IP "\fBcleanup\fR \fI[\-\-force]\fR" 8 .IX Item "cleanup [--force]" Shows broken backup archives (e.g. after unfinished run). Option \fI\-\-force\fR delete these files. .IP "\fBrestore\fR \fItarget_path [age]\fR" 8 .IX Item "restore target_path [age]" Restore the backup to \fItarget_path\fR (as it was at \fIage\fR). .IP "\fBfetch\fR \fIsrc_path target_path [age]\fR" 8 .IX Item "fetch src_path target_path [age]" Restore single file/folder from backup (as it was at \fIage\fR). .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-\-force\fR" 4 .IX Item "--force" Passed to duplicity (see commands: purge, purge-full, cleanup). .IP "\fB\-\-preview\fR" 4 .IX Item "--preview" Do nothing but print out generated duplicity command lines. .IP "\fB\-\-disable\-encryption\fR" 4 .IX Item "--disable-encryption" Disable encryption (does override profile settings). .SH "PRE/POST SCRIPTS" .IX Header "PRE/POST SCRIPTS" All internal duply variables will be readable in the scripts. Some of interest might be .PP .Vb 2 \& CONFDIR, SOURCE, TARGET_URL_, \& GPG_, CMD_ .Ve .PP The CMD_* variables were introduced to allow different actions according to the command the scripts were attached to e.g. 'pre_bkp_post_pre_verify_post' will call the pre script two times, but with \s-1CMD_NEXT\s0 variable set to 'bkp' on the first and to 'verify' on the second run. .SH "EXAMPLES" .IX Header "EXAMPLES" Create profile 'humbug': .PP .Vb 1 \& duply humbug create .Ve .PP and then edit the resulting \fIconf\fR file of this profile. .PP Backup 'humbug' now: .PP .Vb 1 \& duply humbug backup .Ve .PP List available backup sets of profile 'humbug': .PP .Vb 1 \& duply humbug status .Ve .PP List and delete obsolete backup archives of 'humbug': .PP .Vb 1 \& duply humbug purge \-\-force .Ve .PP Restore latest backup of 'humbug' to /mnt/restore: .PP .Vb 1 \& duply humbug restore /mnt/restore .Ve .PP Restore /etc/passwd of 'humbug' from 4 days ago to /root/pw: .PP .Vb 1 \& duply humbug fetch etc/passwd /root/pw 4D .Ve .PP See \fIman duplicity\fR, section \s-1TIME\s0 \s-1FORMATS\s0 for the time format. .PP A one line \fIbatch job\fR on 'humbug' for cron execution: .PP .Vb 1 \& duply humbug backup_verify_purge \-\-force .Ve .SH "FILES" .IX Header "FILES" Files in the profile folder(~/.duply/): .PP .Vb 5 \& conf .......... main profile configuration file \& pre ........... pre script (see above for details) \& post .......... post script (see above for details) \& gpgkey.*.asc .. exported GnuPG key file(s) \& exclude ....... a globbing list of included or excluded files/folders .Ve .PP The rules for the \fIexclude\fR file can be found in \fIman duplicity\fR, section \s-1FILE\s0 \s-1SELECTION\s0). .SH "IMPORTANT" .IX Header "IMPORTANT" Copy the \fIwhole\fR profile folder after the first backup to a safe place. It contains everything needed to restore your backups. You will need it if you have to restore the backup from another system (e.g. after a system crash). Keep access to these files restricted as they contain \&\fIall\fR information (gpg data, ftp data) to access and modify your backups. .PP Repeat this step after \fIall\fR configuration changes. Some configuration options are crucial for restoration. .SH "BUGS" .IX Header "BUGS" This program is still in development. If you find bugs write a bug report on: http://sourceforge.net/projects/ftplicity/. .SH "AVAILABILITY" .IX Header "AVAILABILITY" For newer versions see http://sourceforge.net/projects/ftplicity/. .SH "COPYRIGHT and LICENSE" .IX Header "COPYRIGHT and LICENSE" Copyright (C) 2006 Christiane Ruetten, 2008\-2011 Edgar Soldin .PP This package is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. .PP On Debian systems, the complete text of the \s-1GNU\s0 General Public License version 2 can be found in the file `/usr/share/common\-licenses/GPL\-2'. .SH "AUTHOR" .IX Header "AUTHOR" Duply was written by Christiane Ruetten (initial version, named ftplicity) and Edgar Soldin. .PP This manual page was written by Joachim Wiedorn for the Debian project (and may be used by others). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIduplicity\fR\|(1)