Below is a ready-to-use script. Review and adapt variables to your environment.
#!/usr/bin/env bash set -euo pipefail DEST="/var/backups/postgres" RET=7 mkdir -p "$DEST" STAMP=$(date +%F_%H%M) pg_dumpall -U postgres | gzip > "$DEST/pg-$STAMP.sql.gz" ls -1t "$DEST"/pg-*.sql.gz | tail -n +$((RET+1)) | xargs -r rm -f