Skip to main content

poof backup - instant, secure backup to a cloud drive

Project description

poof backup

poof backup - 2-way secure data sync/backup/restore against a cloud drive.

Backup of local file system directories to a cloud drive or other storage, in a secure manner, and preserving the original files' attributes for later recovery. The poof! tool offers additional security options:

  • Secure delete the local file system files upon successful process completion
  • Encrypt the remote copies

poof! leverages tried-and-true tools to perform its tasks:

  • rclone - A command line program for managing files in cloud storage.

Experimental versions of poof leverage other operating system and third-party tools, discussed in the documentation. For details, see the poof GitHub repository.

One-time set up

  1. Install poof
  2. Install rclone
  3. Configure poof
  4. Configure rclone

Install poof

Use pip or pip3 to install in the current Python scope (system or virtual environment):

pip3 install poof

Configuration

The poof configuration for rclone is specific to this tool. rclone users may have other configurations that in no way conflict with poof and vice versa.

For the first time poof configuration, run:

poof verify

poof validates that all component and configuration requirements are satisfied:

installed rclone? - PoofStatus.OK
exists poof.conf? - PoofStatus.MISSING_CONFIG_FILE

Generate a new, basic poof configuration file and validate its contents:

poof config  && poof verify

Results in:

installed rclone? - PoofStatus.OK
exists poof.conf? - PoofStatus.OK
exists rclone-poof.conf? - PoofStatus.MISSING_CONFIG_FILE

The rclone configuration file for poof is still missing. Generate a simple cloud drive rclone configuration file:

poof cconfig && poof verify

The verification fails because poof must have at least one directory to backup in addition to the backup of its own configuration, which defaults to unittest until overridden by the user.

Verification fails because poof must have a minimum of two directories to backup or upload to the cloud drive:

  • A poof configuration backup directory
  • One end-user backup directory

In most cases, Documents ought to be the first end-user directory.

List the configuration paths to make the necessary updates:

poof paths

Shows these paths on a Mac:

poof.conf = /Users/joe-user/Library/Application Support/poof/poof.conf
rclone-poof.conf = /Users/joe-user/Library/Application Support/poof/rclone-poof.conf

It shows these paths on Linux:

poof.conf = /home/joe-user/.config/poof/poof.conf
rclone-poof.conf = /home/joe-user/.config/poof/rclone-poof.conf

Enter the full path(s) to each directory you wish to back up, no ~ or $HOME. In poof.conf:

{
  "bucket": "poofbackup",
  "confFile": "/Users/joe-user/Library/Application Support/poof/poof.conf",
  "paths": {
    "/Users/joe-user/Documents": "Documents",
    "/Users/joe-user/Downloads": "Downloads",
    "/Users/joe-user/Library/Application Support/poof": "poof-config"
  },
  "remote": "my-poof"
}

Last, configure the appropriate credentials in rclone.conf for the cloud drive intended for backup. This example uses an Amazon S3 configuration, replace the bogus credentials with your own.

Verify the configuation one last time:

poof verify

Will show that poof is ready for normal operations:

installed rclone? - PoofStatus.OK
exists poof.conf? - PoofStatus.OK
exists rclone-poof.conf? - PoofStatus.OK
configuration appears to be valid and has valid credentials

Regular backups

poof validates its own configuration before backing up or restoring data. It will fail if its own configuration or any of its required tools configurations are invalid.

Run poof backup as often as needed or required to copy all the directories in the poof configuration to the cloud drive.

Run poof upload when there is need to sync the local file system directories, then removing all the local files (selected directories wipe).

Run poof download to sync the local file system with the most current files in the cloud drive, as needed or required.

Restore

Restoring data from the cloud drive is a destructive operation in the target file system. This is by design because poof clones and synchronizes the source file system to the targets. Backups are never incremental -- they are considered to be "snapshots" in all cases.

To restore a backup from the cloud to the local file system:

  1. Validate the configuration
  2. Run poof download

The file system synchronization process may take from a few minutes to several hours, depending on the number of files involved, the lengt of the files, and the connection speed.

Operational security

Section under development.

Requirements

  1. Python 3.8 or later
  2. rclone
  3. A UNIX-like operating system and file system

Note: poof may work well under Windows file systems but it hasn't been tested at the time this README was posted.

Installing rclone

Install rclone in your system via https://rclone.org/install/

rclone makes an identical copy of directories and their contents to the desired cloud drive, including the correct time stamps and permissions. It's a more reliable mechanism than building that logic in poof.


© the poof-backup contributors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

poof_backup-1.1.6-py3-none-any.whl (8.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page