Skip to content

CeraMapleheart/20CYS495_Project_Phase_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Backup Tool

Overview

This backup tool provides secure and efficient backup and retrieval of files using encryption and content-defined chunking (CDC). The tool supports scheduling backups, excluding specific file patterns, and compressing backups.

Features

  • Create and connect to repositories with encryption.
  • Backup files with content-defined chunking (CDC) for efficient deduplication.
  • Retrieve files from backups.
  • Schedule backups with specified time.
  • Exclude specific file patterns from backups.
  • Compression support.

Installation

  1. Clone the repository:

    git clone https://github.com/CeraMapleheart/20CYS495_Project_Phase_1.git
    cd backup_tool
  2. Install dependencies:

    pip install -r requirements.txt

Usage

Create a Repository

python3 -m backup_tool.main repository_create --path <destination-path>

Example:

python3 -m backup_tool.main repository_create --path /path/to/repository

Connect to a Repository

python3 -m backup_tool.main repository_connect --path <destination-path>

Example:

python3 -m backup_tool.main repository_connect --path /path/to/repository

Create a Backup (with Exclusions and Compression)

python3 -m backup_tool.main backup_create --source <source-path> [--exclusions <pattern1> <pattern2> ...] [--compression <type>]

Example:

python3 -m backup_tool.main backup_create --source /path/to/source --exclusions '*.tmp' '*.log' --compression gzip

Retrieve Files

python3 -m backup_tool.main retrieve --root-hash <root-hash> --destination <destination-path>

Example:

python3 -m backup_tool.main retrieve --root-hash <root-hash> --destination /path/to/destination

Schedule a Backup

python3 -m backup_tool.main schedule --source <source-path> [--exclusions <pattern1> <pattern2> ...] [--compression <type>] --time <HH:MM>

Example:

python3 -m backup_tool.main schedule --source /path/to/source --time 02:00

License

This project is licensed under the MIT License. See the LICENSE file for details.

requirements.txt

cryptography
schedule

setup.py

from setuptools import setup, find_packages

setup(
    name="backup_tool",
    version="1.0.0",
    packages=find_packages(),
    install_requires=[
        "cryptography",
        "schedule"
    ],
    entry_points={
        "console_scripts": [
            "backup_tool = backup_tool.main:main"
        ]
    },
)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages