How to Backup MongoDB Database to Filebase Using Bash

Filebase is a simple, low-cost S3 compatible storage solution powered by Blockchain technology. Filebase comes with a user-friendly and easy-to-use dashboard and an S3-compatible API that allows you to deploy, access, and manage data across several decentralized storage networks. Filebase offers all users a 5GB free tier with no expiration or trials.

This post will show you how to backup the MongoDB database to Filebase using Bash.

Table Of Contents

Create a Bucket on Filebase

First, you will need to create a bucket on Filebase where you want to store your MongoDB databases. Follow the below steps to create a Filebase bucket.

Step 1 - First, sign in to your Filebase account.

Step 2 - Click on the Buckets in the left pane, you should see the following screen:

Step 3 - Click on the Create Bucket button. You should see the bucket creation screen:

Step 4 - Provide your bucker name, choose your storage location, and click the Create Bucket button. Once the bucket is created, you should see the following screen:

Step 5 - Click on the Access Keys on the left pane, you should see your Filebase access key and secrets on the following screen:

Please note down this access key, secret key, and API endpoint. You will need all to connect to the Filebase bucket.

Install S3cmd Tool

Next, you will need to install the S3cmd tool on your MongoDB database server from where you want to back up your MongoDB database.

S3cmd is a free and open-source command-line tool that allows you to upload, download and manage data in Filebase bucket and other cloud storage service providers. Follow the below steps to install the S3cmd to your server.

First, install the Python and other dependencies by running the following command:

apt-get install python3 python3-setuptools curl -y

Next, download the latest version of S3cmd using the following command:

curl -LO https://github.com/s3tools/s3cmd/releases/download/v2.2.0/s3cmd-2.2.0.tar.gz

Next, extract the downloaded file with the following command:

tar -xvzf s3cmd-2.2.0.tar.gz

Next, navigate to the extracted directory and install it using the following command:

cd s3cmd-2.2.0
python3 setup.py install

Once the S3cmd is installed, verify the S3cmd version using the following command:

s3cmd --version

You will get the following output:

s3cmd version 2.2.0

Configure S3cmd to Connect MongoDB Server to Filebase

Next, you will need to configure the S3cmd using the Filebase Access key and Secret key to connect it to the MongoDB server. You can configure it using the following command:

s3cmd --configure

You will be asked to provide your Filebase Access Key, Secret Key, Region, and Endpoint as shown below:

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
 
Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key: 54203D2S91DA6F043A3D
Secret Key: JSo3sFt7vMF1v3iISArDwWvzSHsPlSsroaL1591A
Default Region [US]: us-east-1
 
Use "s3.amazonaws.com" for S3 Endpoint and not modify it to the target Amazon S3.
S3 Endpoint [s3.amazonaws.com]: s3.filebase.com
 
Use "%(bucket)s.s3.amazonaws.com" to the target Amazon S3. "%(bucket)s" and "%(location)s" vars can be used
if the target S3 system supports dns based buckets.
DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]: %(bucket)s.s3.filebase.com
 
Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:
Path to GPG program [/usr/bin/gpg]:
 
When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [Yes]:
 
On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name:
 
New settings:
Access Key: 54203D2S91DA6F043A3D
Secret Key: JSo3sFt7vMF1v3iISArDwWvzSHsPlSsroaL1591A
Default Region: us-east-1
S3 Endpoint: s3.filebase.com
DNS-style bucket+hostname:port template for accessing a bucket: %(bucket)s.s3.filebase.com
Encryption password:
Path to GPG program: /usr/bin/gpg
Use HTTPS protocol: True
HTTP Proxy server name:
HTTP Proxy server port: 0
 
Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
 
Now verifying that encryption works...
Not configured. Never mind.
 
Save settings? [y/N] y

Once the S3cmd is configured, you can verify your bucket information using the following command:

s3cmd info s3://mongo-filebase/

You will get the following output:

s3://mongo-filebase/ (bucket):
Location: us-east-1
Payer: none
Expiration Rule: none
Policy: <?xml version="1.0" encoding="UTF-8"?><ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Name>mongo-filebase</Name><Prefix/><Marker/><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated></ListBucketResult>
CORS: none
ACL: simon@snapshooter.io: FULL_CONTROL

Use S3cmd to Backup MongoDB Database to Filebase Bucket

First, log in to your server and connect to the MongoDB shell with the following command:

mongo

Once you are logged in, list all available databases using the following command:

show dbs

You will get the following output:

admin 0.000GB
config 0.000GB
local 0.000GB

Next, backup the admin database inside the /opt directory using the following command:

mongodump --db admin --out /opt/

You should see the following output:

2022-07-15T03:07:43.615+0000 writing admin.system.version to
2022-07-15T03:07:43.616+0000 done dumping admin.system.version (1 document)
2022-07-15T03:07:43.617+0000 writing admin.zips to
2022-07-15T03:07:43.702+0000 done dumping admin.zips (29353 documents)

Next, verify all backup databases using the following command:

ls /opt

You will get the following output:

admin

Next, run the S3cmd command to copy the admin directory for all databases to the Filebase Bucket:

tar -czvf - /opt/admin | s3cmd put - s3://mongo-filebase/admin.tar.gz

You should see the following output:

/opt/admin/
/opt/admin/system.version.bson
/opt/admin/zips.metadata.json
/opt/admin/zips.bson
/opt/admin/system.version.metadata.json
upload: '<stdin>' -> 's3://mongo-filebase/admin.tar.gz' [part 1 of -, 859KB] [1 of 1]
879706 of 879706 100% in 0s 6.92 MB/s done

You can now verify all database backups on the Filebase Bucket using the following command:

s3cmd ls s3://mongo-filebase

You will get the following output:

2022-07-15 05:28 879706 s3://mongo-filebase/admin.tar.gz

You can also log in to the Filebase Bucket and verify your backup files as shown below:

Conclusion

In this post, we explained how to backup the MongoDB database to Filebase Bucket using bash. You can now easily backup your databases and copy them to the Filebase bucket easily using the s3cmd tool via bash.

Scheduled MongoDB (Single Databases) Backups SnapShooter

Backup a single MongoDB database to your external storage

Get started for free
No credit card required. Cancel anytime!
Was this page helpful?

Thank you for helping us improve!