A general script to take backup of a postgresql Database. Find it on Github, Fork it and contribute.
Prerequisite
- This script requires S3CMD tool installed and configured on the system from where you are running the script.
- Postgresql installed as you need to run pg_dump command.
- Make sure that version of your postgresql is same as version of Postgresql Host(Database to be dumped).
Steps | Procedure
After setting up the s3cmd, lets go ahead and quickly know the steps that we are going to follow in our script.
- Define basic variables like Postgresql database host, S3 bucket and get the system date to append to the dump file name
- CD into a specific directory where we are going to temporary store the dump.
- Take the dump with pg_dump
- Upload the dump to S3
- Remove the dump from our local system after uploading to S3
The Script
#!/bin/bash # /home/ubuntu/postgres/pg_to_s3_backup.sh # Define the variables. PGHOST="Domain_of_your_PG_host_or_IP" BUCKET="your_s3_bucket_name_here" echo "Get system current Date and Time..." NOW=$(date +"%Y%m%d_%H%M%S") # dump will be stored in /home/ubuntu/postgres/ directory cd /home/ubuntu/postgres/; # Taking dump pg_dump -Fc -v -h $PGHOST -U username db_name > pg-$HOSTNAME-$NOW.dump # Upload to S3 echo "Uploading dump to S3..." s3cmd put /home/ubuntu/postgres/pg-$HOSTNAME-$NOW.dump s3://$BUCKET/ # Deleting the dump after uploading to S# echo "Deleting dump..." sudo rm pg-$HOSTNAME-$NOW.dump
pg-$HOSTNAME-$NOW.dump is the name of the dump we are going to make, you can name it like anything you want.
Contribute
This is a general script which could be made more dynamic and flexible to take certain inputs from user or to check certain conditions. So if you want to contribute just fork the script and give a pull request.
0 comments:
Post a Comment