Utility scripting for managing daily backups with duplicity onto an scp-accessible remote host to make it into a series of monthly snapshots with stashed daily sub-sequences.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ralph Rönnquist 38fb9c424f
Added a restore helper script
2 weeks ago
debian spelling 7 months ago
.gitignore ignore generated files 7 months ago
Makefile initial setup 7 months ago
README.adoc add author and revdate 5 months ago
duplicity-daily initial setup 7 months ago
duplicity-daily.conf initial setup 7 months ago
dupltool initial setup 7 months ago
restore.sh Added a restore helper script 2 weeks ago


Backup Control Scripting

The script dupltool is a wrapper for duplicity that usually just invokes duplicity with all arguments passed on, but every month it first makes a stash of the most recent succession of daily snapshots, so that the duplicity run at this time is a monthly snapshot.

The script duplicity-daily is a simple control script for daily backup that uses configuration from /etc/duplicity-daily.conf that defines which backups to make, and from ~/.ssh/config as to how to connect to the target host (or hosts).

Administration Example

This is a /etc/duplicity-daily sample

The above sample declares backup (without encryption) of directory trees /root, /etc, /home to host backup (as declared in ~/.ssh/config) into directories under the user’s directory backup.

This is a ~/.ssh/config sample
host backup
    hostname backup.lan
    user thishost
    identityfile ~/.ssh/thishost-backup
    ServerAliveInterval 15
    ServerAliveCountMax 4
    TCPKeepAlive yes
    RekeyLimit 100M
    IPQoS reliability

Note that for the above sample, the backup client root@thishost has prepared a password-less ssh key to thishost@backup.lan so that daily backup can happen without operator intervention.

Debian Package

A debian package is built with

$ make deb

provided that the build environment is set up, i.e. an ordinary debian package building environment.

The package is then installed with

# dpkg -i ../buckap_<TAB>

Doing so will install /usr/bin/dupltool and /etc/cron.daily/duplicity-daily, as well as providing an example /etc/duplicity-daily.conf (incuding rudimentary instructions).