From accc39a56df6ac56dcb4b1c4d4758c6da37f2e13 Mon Sep 17 00:00:00 2001 From: Neil-Jocelyn Schark <neil-jocelyn.schark@stud.h-da.de> Date: Thu, 15 Dec 2022 13:11:39 +0000 Subject: [PATCH] Add backup script See merge request danet/gosdn!407 --- .gitignore | 3 +++ README.md | 18 ++++++++++++++++++ docker_volume_backup/.gitkeep | 0 scripts/backup_mongo_volume.sh | 7 +++++++ scripts/restore_mongo_volume.sh | 7 +++++++ 5 files changed, 35 insertions(+) create mode 100644 docker_volume_backup/.gitkeep create mode 100755 scripts/backup_mongo_volume.sh create mode 100755 scripts/restore_mongo_volume.sh diff --git a/.gitignore b/.gitignore index fc66c8dcc..a111591e2 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,6 @@ applications/venv-manager/*.clab.yaml #debug __debug_bin + +#misc +*/mongo_backup_*.tar diff --git a/README.md b/README.md index ce2d4c028..fc3e04357 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,7 @@ to get all submodules. - [Contributing](CONTRIBUTING.md) - [License](LICENSE) - [CI Status](#ci-status) +- [Development Tutorial](#development-tutorial) # Overview @@ -122,3 +123,20 @@ Information about how to use the CLI is provided in the `cli` folder, see [here] | ------ | ------ | | [](https://code.fbi.h-da.de/danet/gosdn/-/commits/master) | [](https://code.fbi.h-da.de/danet/gosdn/-/commits/develop) | | [](https://code.fbi.h-da.de/danet/gosdn/-/commits/master) | [](https://code.fbi.h-da.de/danet/gosdn/-/commits/develop) | + +# Development Tutorial + +TBD + +## Backup and restore your mongodb + +If you are using the mongodb provided via the `docker-compose.yaml`, you can easily backup and restore your data via two scripts. + +```bash +./scripts/backup_mongo_volume.sh $(suffix_of_backup) +``` +```bash +./scripts/restore_mongo_volume.sh $(suffix_of_backup) +``` + +Keep in mind that a restore will restart the mongodb container. diff --git a/docker_volume_backup/.gitkeep b/docker_volume_backup/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/scripts/backup_mongo_volume.sh b/scripts/backup_mongo_volume.sh new file mode 100755 index 000000000..5eac99398 --- /dev/null +++ b/scripts/backup_mongo_volume.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +file_suffix=$1 + +docker-compose pause mongo +docker run --rm --volumes-from gosdn-mongo-1 -v $(pwd)/docker_volume_backup:/backup ubuntu bash -c 'cd /data/db/ && tar cvf /backup/mongo_backup_'"$file_suffix"'.tar .' +docker-compose unpause mongo diff --git a/scripts/restore_mongo_volume.sh b/scripts/restore_mongo_volume.sh new file mode 100755 index 000000000..601f1bbb7 --- /dev/null +++ b/scripts/restore_mongo_volume.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +file_suffix=$1 + +docker-compose pause mongo +docker run --rm --volumes-from gosdn-mongo-1 -v $(pwd)/docker_volume_backup:/backup ubuntu bash -c 'rm -r /data/db/* && cd /data/db && tar xvf /backup/mongo_backup_'"$file_suffix"'.tar --strip 1' +docker-compose restart mongo -- GitLab