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.
- 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.
-
Clone the repository:
git clone https://github.com/CeraMapleheart/20CYS495_Project_Phase_1.git cd backup_tool
-
Install dependencies:
pip install -r requirements.txt
python3 -m backup_tool.main repository_create --path <destination-path>
Example:
python3 -m backup_tool.main repository_create --path /path/to/repository
python3 -m backup_tool.main repository_connect --path <destination-path>
Example:
python3 -m backup_tool.main repository_connect --path /path/to/repository
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
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
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
This project is licensed under the MIT License. See the LICENSE file for details.
cryptography
schedule
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"
]
},
)