Skip to main content

Securely Backup MongoDB to Google Drive

Project description

mongogbackup

Secure Mongo DB backups on Google Drive

Installation

$ pip install mongogbackup

Usage

Import

from  mongogbackup import MongoConfig, MongoGBackup

Initialization

mongo_config = MongoConfig(
                                db_name='your_db',
                                host='localhost',
                                port=27017,
                                # optional parameters below
                                username='root',
                                password='password',
                                auth_db='admin'
                            )
backup_handler =MongoGBackup(
                            mongoConfig=mongo_config,
                            credentials_file='path/credentials.json',  
                            key='fernet_key'
                        )
gdrive = GoogleDriveHandler(
                             credentials_file='path/credentials.json',
                             parent_id = target_folder_id,
                             file_name = name_of_the_file_you_want_to_upload,
                             num_files = how_many_files_you_want_to_keep_in_the_rotating_file_handler               
)

Creating dump

backup_handler.backups.backup(dir='backup_path/dump/')

Compressing the dump

backup_handler.targz.pack(source_path='backup_path/dump/', output_path='filename.tar.gz')

Encrypting the dump

backup_handler.encrypt.encrypt_file('filename.tar.gz', 'destination.file')

Uploading to Google Drive

Add your credentials.json file to your project (you can generate this on Google Cloud Console)

Simple upload to google drive

gdrive.upload_file_to_drive(file_name, parent_id)

Delete all previous files with same name and upload to Google Drive

gdrive.overwrite_and_upload_to_drive(file_name, parent_id)

Upload to Google Drive with a rotating file handler

gdrive.upload_to_drive_with_rfh(file_name, parent_id, num_files)

Restore Backups

Download the backup file from google drive (say: backup.encr)

Decrypt the file

backup_handler.encrypt.decrypt_file('backup.encr', 'filename.tar.gz')

Decompressing the tar-gz dump

backup_handler.targz.unpack(source_path='filename.tar.gz', output_path='backup_dir/dump/')

Restoring the dump

backup_handler.backups.restore(bck_dir='backup_dir/dump/')

Hash Checks

To ensure that your backup file has not been tampered with, you can perform a SHA-256 hash check.

backup_handler.hash.generate_file_hash('source.file')

You can also save the hash into a txt file by executing

backup_handler.hash.save('hash.txt')

or print the hash by executing

print(backup_handler.hash.last_hash())

You can also compare the current generated hash with any other string using

backup_handler.hash.compare_generated('hash-string')
# returns True or False on comparision

Made with ❤️ by DevCom, 2024

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mongogbackup-0.1.1.tar.gz (20.9 kB view details)

Uploaded Source

Built Distribution

mongogbackup-0.1.1-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file mongogbackup-0.1.1.tar.gz.

File metadata

  • Download URL: mongogbackup-0.1.1.tar.gz
  • Upload date:
  • Size: 20.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for mongogbackup-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3a046364de600c421ac3e0440e1eaf09ce709fab76239f0d1ee567fc75d41ddc
MD5 cbba9c24a8f71642f021181fd2b9751d
BLAKE2b-256 d30083c9d54e125b1b74a0075aa2417db6c69530986a838cc4929d977dcd86a5

See more details on using hashes here.

File details

Details for the file mongogbackup-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: mongogbackup-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for mongogbackup-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f11f91cc7a9e6a6d1f88392a4f3837720769da3c71577acd06373d41d244ab28
MD5 92610684890c1bd6061e91bef7b43062
BLAKE2b-256 deda8b13a9f559e7a13631a2d62f2ff43509167e81c81a48163f46623794dbda

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page