Automated tool to make periodic backups of PostgreSQL databases

Emmanuel Bouthenot 0b3081df05 Fix stderr capture and check return code while running pg_dump/pg_dumpall commands 1 year ago
Changelog.md 0b3081df05 Fix stderr capture and check return code while running pg_dump/pg_dumpall commands 1 year ago
Documentation.md c7e019ff51 Add separate configuration settings for pg_dump and pg_dumpall 1 year ago
Readme.md e293415ac7 Fix typo (link to documentation) 1 year ago
autopostgresqlbackup 0b3081df05 Fix stderr capture and check return code while running pg_dump/pg_dumpall commands 1 year ago

Readme.md

AutoPostgreSQLBackup

AutoPostgreSQLBackup is a shell script (usually executed from a cron job) designed to provide a fully automated tool to make periodic backups of PostgreSQL databases.

AutoPostgreSQLBackup extract databases into flat files in a daily, weekly or monthly basis.

Version 2.0 is a full rewrite.

It supports:

  • Email notification
  • Compression on the fly
  • Encryption on the fly
  • Rotation (daily and/or weekly and/or monthly)
  • Databases exclusion
  • Pre and Post scripts
  • Local configuration

Usage

On Debian (or derived):

Install: apt install autopostgresqlbackup

If the default options are not suitable for you, change them: ${EDITOR} /etc/default/autopostgresqlbackup

That's it!

Documentation

See the documentation.

History

  • 2023: Almost full rewrite with better error handling and new features (see Changelog.md for details)
  • 2019: Creation of a fork/standelone project on Github (https://github.com/k0lter/autopostgresqlbackup)
  • Since 2011: Various patches (fixes and new features) were added in the Debian package
  • 2011: AutoPostgreSQLBackup was included in Debian
  • 2005: AutoPostgreSQLBackup was written by Aaron Axelsen (with some contributions of Friedrich Lobenstock)

Encryption

Encryption (asymmetric) is now done with GnuPG, you just need to add the public key (armored or not) you want to encrypt the data to in the file pointed by the ${ENCRYPTION_PUBLIC_KEY} configuration setting.

Export your public key:

gpg --export 0xY0URK3Y1D --output mypubkey.gpg

or

gpg --export --armor 0xY0URK3Y1D --output mypubkey.asc

then copy mypubkey.asc or mypubkey.gpg to the path pointed by the ${ENCRYPTION_PUBLIC_KEY} configuration setting and set the ${ENCRYPTION} setting to yes.

OpenSSL Encryption

Starting from version 2.0 encryption with OpenSSL is no longer supported as it was discovered (but also known for quite some time) that encrypting large files with OpenSSL silently fail and that decrypting these files is close to be impossible.

Authors

  • Emmanuel Bouthenot (Current maintainer)
  • Friedrich Lobenstock (Contributions)
  • Aaron Axelsen (Original author)