Automated tool to make periodic backups of PostgreSQL databases

Emmanuel Bouthenot 94f34c62f0 Fix a variable scope issue 1 year ago
Changelog.md 694f2eabb0 Update Changelog 1 year ago
Documentation.md f2d4ba7dec Add documentation 1 year ago
Readme.md f2d4ba7dec Add documentation 1 year ago
autopostgresqlbackup 94f34c62f0 Fix a variable scope issue 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)