All Projects → r-kan → BUFFY

r-kan / BUFFY

Licence: MIT license
Back Up Files For You

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to BUFFY

laravel-mail-export
A simple mailable trait and interface to export mails to a storage disk once being sent.
Stars: ✭ 82 (+331.58%)
Mutual labels:  backup
pcre-heavy
A Haskell regular expressions library that doesn't suck | now on https://codeberg.org/valpackett/pcre-heavy
Stars: ✭ 52 (+173.68%)
Mutual labels:  regular-expression
laravel-database-manager
Make your database simple, easier and faster with vuejs.
Stars: ✭ 50 (+163.16%)
Mutual labels:  backup
ansible-role-backup
Ansible Role - Backup for simple servers
Stars: ✭ 122 (+542.11%)
Mutual labels:  backup
velero-plugin-example
Example project for plugins for Velero, a Kubernetes disaster recovery utility
Stars: ✭ 45 (+136.84%)
Mutual labels:  backup
bakelite
Incremental backup with strong cryptographic confidentiality baked into the data model.
Stars: ✭ 118 (+521.05%)
Mutual labels:  backup
regex-not
Create a javascript regular expression for matching everything except for the given string.
Stars: ✭ 31 (+63.16%)
Mutual labels:  regular-expression
Hangons
Web app to parse and save your Hangouts.json file into a more friendly format.
Stars: ✭ 45 (+136.84%)
Mutual labels:  backup
teledrive
TeleDrive lets you automatically backup all your files to telegram saved messages - this means FREE, UNLIMITED storage
Stars: ✭ 126 (+563.16%)
Mutual labels:  backup
LearningReIn30Mins
正则表达式30分钟入门
Stars: ✭ 20 (+5.26%)
Mutual labels:  regular-expression
blockyarchive
Blocky archive - multithreaded archiver offering bit rot protection and sector level recoverability
Stars: ✭ 88 (+363.16%)
Mutual labels:  backup
pgsql-backup
PostgreSQL Backup Script. Ported from AutoMySQLBackup.
Stars: ✭ 24 (+26.32%)
Mutual labels:  backup
doi-regex
Regular expression for matching DOIs
Stars: ✭ 28 (+47.37%)
Mutual labels:  regular-expression
EspBuddy
Wrapper to easily upload (OTA or Serial), backup, batch query, monitor ESP8266 boards using Esptool.py, Espota.py and Platformio
Stars: ✭ 47 (+147.37%)
Mutual labels:  backup
MailcowBackup
Script to backup/restore Mailcow and the host system using borgbackup. Handles 503 error page generation, mailflow stop/restart, SQL database dump, borg backup and prune and integrates with Logwatch for easy monitoring.
Stars: ✭ 28 (+47.37%)
Mutual labels:  backup
grafana-backup
[ON HOLD] CLI tool for backup/restore Grafana dashboards and datasources.
Stars: ✭ 28 (+47.37%)
Mutual labels:  backup
gravity
User-space deniable data encryption client.
Stars: ✭ 89 (+368.42%)
Mutual labels:  backup
RegexReplacer
A flexible tool to make complex replacements with regular expression
Stars: ✭ 38 (+100%)
Mutual labels:  regular-expression
ekstertera
Linux GUI клиент для работы с Яндекс.Диск (Yandex.Disk) через REST API
Stars: ✭ 33 (+73.68%)
Mutual labels:  backup
vbo365-rest
Unofficial Self-Service Web Portal for Veeam Backup for Microsoft Office 365
Stars: ✭ 44 (+131.58%)
Mutual labels:  backup

BUFFY? What is it?

BUFFY, stands for 'Back Up Files For You', is a command line tool to back up files.

How BUFFY makes your life better

  • 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

How to use BUFFY?

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 $dyn$ is a keyword, which will be replaced by the runtime evaluation outcome of the 3rd entry. Before that, the 2nd entry will be 'imported' (leave it empty if 'import' is not needed). For instance, file named 'masterpiece_2013-06-14' will be backed up, on the date the highly praised work 'The Last of Us' on PS3 is released, which is 2013/06/14.

Command line usage

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)

Future direction of BUFFY

Support more remote backup media, e.g., dropbox
Provide incrmental backup optionally

Contact

Please contact Rodney Kan by [email protected] for any question/request/bug without hesitation.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].