BUFFY, stands for 'Back Up Files For You', is a command line tool to back up files.
- Back up to local and remote spaces at one time
- Very simple and straightforward to use, yet flexible
- Easy monitoring backup status
- Support all major platforms with python3.x, e.g., Windows, linux, Mac OS
First, let’s back up a single file my_file.txt to local disk /my_backup/
buffy -src my_file.txt -dst /my_backup/
Note: from now, buffy
stands for python3 <BUFFY_HOME>/main.py
It is suggested to back up both locally and remotely, e.g., local disk and Amazon S3
buffy -src my_file_dir -dst /my_backup/ -dst s3://my_backup_bucket
Note: to back up to s3, awscli must be installed
It could be bad due to various aspects of expense, if we back up beyond requirement.
BUFFY provides a set of simple yet flexible functions to specify the backup target.
For example, you can tell BUFFY to back up file:
- with certain extension name
- matches with certain regular expression
- matches with certain ‘dynamic pattern'
Besides, form an excluded file list for backup is also possible.
This is accomplished by giving a json configuration file to BUFFY.
buffy -c example.json
In example.json, we have
"src":
{
"root": "/my_file_dir", <== the base directory of backup source
"file": ["password.txt", "email/"], <== file, or directory can be specified
"ext": ["jpg", "png"], <== back up the pictures
"re": [".*/credential.+"], <== back up file basename ends with 'credential'
"exclude":
{
"re": ".*.DS_Store$" <== not back up the Mac OS system file '.DS_Store'
}
},
We haven't talked about the usage of 'dynamic pattern', right? It is the most powerful though fallable function. So one must use it with caution. Basically, it performs runtime evaluation to decide regular expressions. For example,
"src":
{
...
"dyn": ["masterpiece_$dyn$", "datetime", "str(datetime.date.today())"],
...
},
Take a look at the value of 'dyn': the 1st entry is original regular expression, such that
usage: buffy [-h] [-src SRC] [-dst DST] [-n NAME] [-e] [-cmp] [-r RPT] [-v]
[-s] [-d] [-c CONFIG_FILE]
BUFFY --- Back Up Files For You
optional arguments:
-h, --help show this help message and exit
-src SRC backup source
-dst DST backup destination
-n NAME, --name NAME backup name
-e, --encoding name encoding with date (default: False)
-cmp, --compress compress backup files (default: False)
-r RPT, --report RPT report path
-v, --verbose verbose mode
-s, --silent silent mode
-d, --dry_run perform a dry run
-c CONFIG_FILE, --config CONFIG_FILE
config file (this option overwrites others)
Support more remote backup media, e.g., dropbox
Provide incrmental backup optionally
Please contact Rodney Kan by [email protected] for any question/request/bug without hesitation.