- Backs up and encrypts all databases or a custom list of databases.
- Supports local backups and cloud storage options like S3 or Minio.
- Option to remove old local backups for efficient storage management.
- Provides notifications through email for monitoring backups.
-
Configure pgsql-backup by editing the config file (default is
/etc/pgsql-backup.yml
) -
Run the backup using the following command as the postgres user:
pgsql-backup
Backups will be created for each database based on the configuration. For local backups, ensure that you define a backup folder with appropriate permissions.
- p7zip
The configuration file is in YAML format. The available options are:
backupDestination
- Local backup folder pathdatabases
- List of database names to back up, if empty all databases are backed upremoveLocal
- Remove old local backups if truearchivePass
- Password to use for encrypting backups with 7zs3
- S3 configuration for backupsminio
- Minio configuration for backupsnotify
- Email and webhook url notification configurationlog
- Logging configuration
See config/config.sample.yml
for an example configuration file.
To build pgsql-backup:
CGO_ENABLED=0 go build -ldflags '-extldflags "-static"'
pgsql-backup is GPL-3.0 licensed. See LICENSE file for details.