Backup, restore, version control local data to google drive
Project description
backup-tools
Backup, restore, version control local data to google drive
Prerequisites
- Python >= 3.6
Install
pip install backuptools
Usage
Create config file
- Create and download google account service json file
credentials.json
for google drive service - Share Google Drive folder for Service Account email
- Get
id
of Google Drive folder and put tobackuptools.config.json
below - Create
backuptools.config.json
with content:
{
"drive_credentials": "<path/to/credentials.json>",
"drive_root_id": "<id_of_drive_folder>",
"resources": [
{
"type": "GoogleDriveBackupResource",
"name": "<resource_name>",
"args": {
"local_resource_path": "<path/to/local/source>",
"local_backup_folder_path": "<path/to/local/backup/folder>",
"drive_backup_folder_path": "<path/to/drive/backup/folder>"
}
}
]
}
Backup
With auto name
backuptools -R <resource> backup
With specific name
backuptools -R <resource> backup <version>
Restore
backuptools -R <resource> restore <version>
List version
List all local and remote version
backuptools -R <resource> ls
List local only version
backuptools -R <resource> ls --local
List remote only version
backuptools -R <resource> ls --remote
Create local version
With auto name
backuptools -R <resource> create
With specific name
backuptools -R <resource> create <version>
Extract local version
backuptools -R <resource> extract <version>
Push version
Push one local version to remote
backuptools -R <resource> push <version>
Push all local versions to remote
backuptools -R <resource> push --all
Pull version
Pull one remote version to remote
backuptools -R <resource> pull <version>
Pull all remote versions to local
backuptools -R <resource> pull --all
Sync versions
Upload all local versions to remote and download all remote versions to local
backuptools -R <resource> sync
Remove version
Remove one version on local and remote
backuptools -R <resource> rm <version>
Remove one version on local
backuptools -R <resource> rm <version> --local
Remove one version on remote
backuptools -R <resource> rm <version> --remote
Remove all version on local and remote
backuptools -R <resource> rm --all
Remove all version on local
backuptools -R <resource> rm --all --local
Remove all version on remote
backuptools -R <resource> rm --all --remote
Development
Prerequisites
pipenv install
Test
-
Create Google Drive Service account and download json key
-
Copy to file to path credentials/credentials.json
-
Create file
test/local_config.py
with content:
ROOT_ID = "1rbi0gr7yMAFKqEgx-pBp6kKJx1Z4Tcgm"
CREDENTIALS_PATH = 'credentials/credentials.json'
- Test command line
./test.sh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for backuptools-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2c14e1c4eebbc8d7c165015370c5491a9a57c510c5d93ab1138944450b0ed0f |
|
MD5 | 6bf1cd263664130839a4b90763f00a4e |
|
BLAKE2b-256 | dd4d60f7d80fa8d0b9134a609b322418d9463e84de55220437ebed1984f57a26 |