48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# MongoDB Backup Script
|
|
A script to automatically handle the backing up of MongoDB databases and optionally the storage of the archive to a github repository. Designed as a script to be run as a service on a server.
|
|
|
|
### Setup
|
|
|
|
1. Rename `.env.example` to `.env`
|
|
2. Set the parameters of your **mongoURI, database names, and optionally a gitub url/ssh link**. Ex.
|
|
```.env
|
|
mongoURI=mongodb://localhost:27017
|
|
databases=db_name_1, db_name_2, ...
|
|
github=git@github:Username/MongoDB_Backup_Repo.git
|
|
github_author=Github_Username
|
|
github_email=john_doe@example.com
|
|
```
|
|
**Note:** If you wish to backup more than one database at a time, be sure to seperate the database names with a comma and a space as follows "`, `".
|
|
|
|
3. Setup your service on your UNIX-based OS, for example an Ubuntu Server.
|
|
**i.** Build the project to a binary.
|
|
```bash
|
|
$ go build main.go
|
|
```
|
|
**ii.** Create a System Service file
|
|
```bash
|
|
$ vim /lib/systemd/system/mongobackup.service
|
|
```
|
|
Now within the `mongobackup.service` file, write the configuration for the program.
|
|
```service
|
|
[Unit]
|
|
Description=MongoDB Backup Service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=username
|
|
Group=username
|
|
Restart=always
|
|
RestartSec=46400
|
|
WorkingDir=/path/to/project
|
|
ExecStart=/path/to/project/binary
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
**iii.** Finally start the service.
|
|
```bash
|
|
$ service mongobackup start
|
|
```
|
|
|