PostgreSQL Backup with Bash

Learn how to backup PostgreSQL to IPFS using Bash.

What is PostgreSQL?

PostgreSQL is an open-source relational database management service.

Read below to learn how to backup PostgreSQL to IPFS using Bash.

Prerequisites:

Special thanks to Simon Bennett from SnapShooter for the original version of this tutorial.

1. Start by installing the S3cmd tool on your PostgreSQL server with the following commands:

apt-get install python3 python3-setuptools curl -y

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

tar -xvzf s3cmd-2.2.0.tar.gz

cd s3cmd-2.2.0

python3 setup.py install

2. Verify S3cmd was installed correctly using the following command to display the installed version:

s3cmd --version

3. Next, configure S3cmd for use with Filebase:

s3cmd --configure

You will be prompted to enter the following configuration details:

  • Access Key: Filebase Access Key

  • Secret Key: Filebase Secret Key

  • Default Region: us-east-1

  • S3 Endpoint: s3.filebase.com

Overall, your configuration output should resemble the following:

4. Test your configuration using the following command:

S3cmd info s3://filebase-bucket-name

Replace filebase-bucket-name with your Filebase bucket name. The output should resemble the following:

5. Next, login to your PostgreSQL server with the following commands:

Su - postgresql

psql

6. Show the available databases with the command:

postgres=# \\l

7. Then, backup all databases using the following command.

pg_dumpall > dump.sql

To backup just one database, use the command:

pg_dump -U username -W -F t -d testdb > testdb.tar

8. Run the following S3cmd command to copy the dump.sql file into your Filebase bucket:

s3cmd put dump.sql s3://filebase-bucket-name/

To upload just one database file, use the following command:

s3cmd put testdb.tar s3://postgresql-filebase/

Replace filebase-bucket-name with your Filebase bucket name.

9. Verify that all files have been uploaded correctly using the following command:

s3cmd ls s3://filebase-bucket-name

The output will resemble the following:

2022-08-08 05:31 10485760 s3://filebase-bucket-name/dump.sql

Last updated

Was this helpful?