Manpage duply.1 created. ed by Pod::Man 4.07
duply - a shell frontend to duplicity for simplified backups
duply profile create
duply profile command [options ...]
duply profile command[_command_...] [options ...]
deals as a wrapper for the mighty duplicity magic. It simplifies
running duplicity with cron or on command line by:
- keeping recurring settings in profiles per backup job
- enabling batch operations eg. backup_verify+purge
- executing pre/post scripts (different actions possible
depending on previous or next command or it's exit status)
- precondition checking for flawless duplicity operation
For each backup job one configuration profile must be created. The profile
folder will be stored under ~/.duply/«profile»
is the current users home directory).
: If the folder /etc/duply
exists, the profiles for the
superuser root will be searched and created there.
First time usage (profile creation):
duply <profile> create
General usage in single mode (see EXAMPLES):
duply <profile> <command> [<options> ...]
General usage in batch mode joining commands with '_' (see EXAMPLES):
duply <profile> <command>[[_|+|-]<command>[_|+|-]...] [<options> ...]
For batches the conditional separators can also be written as pseudo commands
and(+), or(-). See SEPARATORS for details.
options are passed on to duplicity (see OPTIONS). All config
parameters can also be defined in the environment instead.
- _ (underscore)
- neutral separator
- + (plus sign), _and_
- conditional AND; the next command will only be executed if
the previous succeeded
- - (minus sign), _or_
- conditional OR; the next command will only be executed if
the previous failed
Example: 'pre+bkp-verify_post' translates to 'pre_and_bkp_or_verify_post'
Indicated by a path or a profile name i.e. myprofile
, which is resolved
('~' expands to environment variable $HOME).
Superuser root can place profiles under /etc/duply
. Simply create the
folder manually before running duply as superuser.
ATTENTION: Already existing profiles in root's home folder will cease to work
unless they are moved to the new location manually.
Usually only the profile name (here: 'humbug') will be used:
duply humbug backup
Alternatively a path
might be used. This might be useful for quick
testing, restoring or exotic locations. Shell expansion should work as usual:
duply ~/.duplytest/humbug backup
ATTENTION: The path must contain at least one '/', e.g ./test
- Get usage help text.
- Pseudo commands for better batch cmd readability (see
- Creates a configuration profile.
- Backup with pre/post script execution (as batch the same
- as full backup if parameter full_if_older matches or
no earlier backup is found.
- as incremental backup in all other cases.
- As above but without executing pre/post scripts.
- Force full backup.
- Force incremental backup.
- Execute only script '<profile>/pre' (for debugging
- Execute only script '<profile>/post' (for debugging
- list [«age»]
- List all files in backup (as it was at age, default:
- Print backup sets and chains currently in repository.
- verify [«age»]
- List files changed, since age if given.
- verifyPath [«rel_path_in_bkp»]
- List changes of a file or folder path in backup compared to
a local path, since age if given.
- restore «target_path»
- Restore the complete backup to target_path (as it
was at age).
- fetch src_path target_path
- Fetch single file/folder from backup (as it was at
- purge [«max_age»]
- List outdated backup archives (older than max_age).
Use option --force to actually delete these files.
- purgeFull [«max_full_backups»]
- List outdated backup files. max_full_backups being
the number of full backups and associated incrementals to keep, counting
in reverse chronological order. Use option --force to actually
delete these files.
- List outdated incremental backup files.
max_fulls_with_incrs being the number of full backups which
associated incrementals will be kept, counting in reverse chronological
order. Use option --force to actually delete these files.
- cleanup [--force]
- List broken backup chain files archives (e.g. after
unfinished run). Use option --force to actually delete these
- Print the last changes of duply.
- Show version information of duply and needed
- Passed to duplicity (see commands: purge, purge-full,
- Do nothing but print out generated duplicity command
- Disable encryption, override profile settings.
For all time related parameters like age, max_age etc. refer to the duplicity
manpage for all available formats. Here some examples:
· 2002-01-25T07:00:00+02:00 (full date time format string)
· 2002/3/5 (date string YYYY/MM/DD)
· 12D (interval, 12 days ago)
· 1h78m (interval, 1 hour 78 minutes ago)
Some useful internal duply variables are exported to the scripts:
PROFILE, CONFDIR, SOURCE, TARGET_URL_<PROT|HOSTPATH|USER|PASS>,
GPG_<KEYS_ENC|KEY_SIGN|PW>, CMD_<PREV|NEXT>, CMD_ERR, RUN_START,
CND_<PREV|NEXT> (condition before/after next/prev command)
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, with CMD_NEXT variable set to 'bkp' on the
first and to 'verify' on the second run. CMD_ERR holds the exit code of the
Create profile 'humbug':
duply humbug create
and then edit the resulting conf
file of this profile.
Backup 'humbug' now:
duply humbug backup
List available backup sets of profile 'humbug':
duply humbug status
List and delete outdated backups of 'humbug':
duply humbug purge --force
Restore latest backup of 'humbug' to /mnt/restore:
duply humbug restore /mnt/restore
Restore /etc/passwd of 'humbug' from 4 days ago to /root/pw:
duply humbug fetch etc/passwd /root/pw 4D
See man duplicity
, section TIME FORMATS for the time format.
A one line batch job
on 'humbug' for cron execution:
duply humbug backup_verify_purge --force
Batch job to run a full backup with pre/post scripts:
duply humbug pre_full_post
Files in profile folder '~/.duply/<profile>' or '/etc/duply':
conf .......... profile configuration file
pre ........... pre script (see above for details)
post .......... post script (see above for details)
gpgkey.*.asc .. exported GnuPG key files
exclude ....... a globbing list of included or excluded files/folders
The rules for the exclude
file can be found in man duplicity
section FILE SELECTION).
Copy the whole
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 all
(gpg data, ftp data) to access and modify your backups.
Repeat this step after all
configuration changes. Some configuration
options are crucial for restoration.
This program is still in development. If you find bugs write a bug report on:
For newer versions see http://sourceforge.net/projects/ftplicity/.
Copyright (C) 2006 Christiane Ruetten, 2008-2017 Edgar Soldin
This package is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
On Debian systems, the complete text of the GNU General Public License version 2
can be found in the file `/usr/share/common-licenses/GPL-2'.
Duply was written by Christiane Ruetten (initial version, named ftplicity) and
This manual page was written by Joachim Wiedorn <joodebian at joonet.de>
for the Debian project (and may be used by others).