Automated tool to make periodic backups of PostgreSQL databases

Emmanuel Bouthenot ef88f5bbe9 feat: display errors on stdout when MAILADDR is empty 8 months ago
Changelog.md eedfa5d1f0 Add MIN_DUMP_SIZE configuration variable to raise a warning when a backup file size is below this limit 1 year ago
Documentation.md ef88f5bbe9 feat: display errors on stdout when MAILADDR is empty 8 months ago
Readme.md e293415ac7 Fix typo (link to documentation) 1 year ago
autopostgresqlbackup ef88f5bbe9 feat: display errors on stdout when MAILADDR is empty 8 months 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)