Skip to main content

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

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

If you're not sure about the file name format, learn more about wheel file names.

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.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page