Pickup is a modular backup script completely written in Python.
The source code is available on the github project page.
The core of the application is the executable pickup.py and a python script used as config file. This core does not include any code related as to how a backup from a given source should be created. This logic is stashed away in modules. This has the advantage that it’s very easy to add support for a new “data source” or to change the behaviour of an existing component.
The backup target is created in the exact same way. For the exact same reason. The only drawback, is that backups need to be created in a “staging area” first before they are deployed to a target. This is done because some targets (like rsync) work best if you can feed them one folder containing everything. It would be a waste to run rsync on each file separately.
Example Configuration
The following configuration script will create a backup of each local home folder. Each folder will be stored as separate tarball:
CONFIG_VERSION = (2,1)
STAGING_AREA = "staging"
GENERATORS = [{
'name': 'local home folders',
'profile': 'folder',
'config': {
'path': '/home',
'split': True,
}}]
TARGETS = [{
'name': "local",
'profile': "dailyfolder",
'config': {
'path': "/var/backups/daily",
}}]
See Configuration for more details and examples.
Example Execution
Take the above configuration and save it anywhere you like. You can execute it by running:
python pickup.py -c /path/to/config_file.py
Or, if you installed it into you system (see Installation):
/path/to/pickup -c /path/to/config_file.py
Requirements:
- Python
Comments not found