We are proud to announce the new release of Poppins 0.2 beta. This release is a big improvement including new features and bug fixing.

Poppins 0.2 beta is PHP7 ready. It was tested on Debian 8, CentOS 7 and Ubuntu 16.04 server. Please read the release notes and edit your config files before upgrading.

RELEASE NOTES

DATE: 2016-07-01

NEW FEATURES

INI FILE

The following ini configuration directives need to be ADDED to the config file.

See example.poppins.ini:

... [local] ; snapshots are created using hardlinks by default ; if available, you may use zfs or btrfs ; filesystem snapshots instead ; values are "default", "btrfs" or "zfs" snapshot-backend = "btrfs" ... [remote] ; enable remote connection with ssh, default is yes ; disable if backing up local directories (e.g. to an external drive) ; host and user directives are disregarded in case ssh is disabled ssh = yes ; ssh connection retries if desired ; check is applied on first connection attempt ; default is 0 retry-count = 0 ; timeout between retries in seconds ; default is 0 retry-timeout = 10 ...

The following directives need to be REMOVED:

... ; local filesystem options: default/ZFS/BTRFS ; use ZFS or BTRFS if you want to use shapshot features ; for these filesystems. Otherwise, use default. filesystem = 'BTRFS' ...

NEW CLI OPTIONS

The following cli options have been added:

–color: add colors to cli output

-t {tag}: add an optional tag to poppins log file

TAGGING

You may add a tag to a poppins run, e.g. a hash or timestamp:

poppins -c example.poppins.ini -t POPPINS.RUN.$(date +%Y%m%d)

If runs are tagged, you can search through your log files, e.g. search warnings or errors:

zgrep -l POPPINS.RUN.20160624 /home/poppins/poppins.d/logs/*gz | grep -E 'warning|error' | xargs zcat

In cron you can add a timestamp like so:

TIMESTAMP="date +%Y%m%d" # m h dom mon dow command 1 1 * * * /usr/local/bin/poppins -c /home/poppins/poppins.d/conf/example.poppins.ini -t POPPINS.RUN.$($TIMESTAMP)

WHAT HAS CHANGED?

MAJOR CHANGES

The “filesystem” directive in the [local] section was removed as it is too

ambiguous. It is replaced by the “snapshot-backend” directive. Rotation logic is

not necessarily related to filesystem.

ambiguous. It is replaced by the “snapshot-backend” directive. Rotation logic is not necessarily related to filesystem. Local rsync (no ssh connection) is supported, enabling you to schedule a

backup on your local machine. E.g. using an external drive for backups.

backup on your local machine. E.g. using an external drive for backups. Ssh connection attempts and retry timeouts implemented.

Strong validation of the ini file was added. Illegal or potentially dangerous characters (such as ‘*’) are not allowed. Quotes in ‘yes’ and ‘no’ are deprecated. Do not use quotes in booleans.



MINOR CHANGES

Allow unicode characters in the ini file.

Warn if host directories (e.g. rsync dir, archive dir, snapshot dirs, mysql dir) contain unknown (not configured) files/directories.

Better reporting: disk usage, snapshot list, …

WHAT HAS BEEN FIXED?

Fixed issues with spaces in file names

Fixed issues with options overriding

Output pre-backup-script if script failed

Refactoring and other small bug fixing

KNOWN ISSUES

Validation of ini files is imperfect because of the lack of type support of

the function parseinifile(). As of PHP 5.6, INISCANNERTYPED needs to be

implemented when PHP 5.6+ is available on Debian and CentOS latest releases.

INSTALLATION

Run command:

hg pull -u