1
1
#! /bin/bash
2
2
3
3
# see https://wiki.postgresql.org/wiki/Automated_Backup_on_Linux
4
+ BACKUP_TMP_DIR=${BACKUP_TMP_DIR:-/ tmp}
4
5
5
6
log () {
6
7
echo " [pg_backup_rotated.sh]> $@ "
@@ -17,7 +18,9 @@ function perform_backups()
17
18
18
19
backup_date=` date +%Y-%m-%d`
19
20
backup_file_path=" ${BACKUP_DIR}${backup_date}${suffix} " .backup
21
+ backup_progress_file_path=" ${BACKUP_TMP_DIR}${backup_date}${suffix} " .backup
20
22
backup_roles_file_path=" ${backup_file_path} _roles.out"
23
+ backup_progress_roles_file_path=" ${backup_progress_file_path} _roles.out"
21
24
22
25
if [[ -e ${backup_file_path} ]]; then
23
26
log " ${backup_file_path} already exists, skipping dump"
@@ -26,19 +29,19 @@ function perform_backups()
26
29
27
30
log " Dumping custom backup for ${DB_NAME} database to ${backup_file_path} "
28
31
29
- if ! pg_dump -Fc -h " $db_host " -p " $db_port " -U " $db_user " ${DB_NAME} -f ${backup_file_path } .in_progress; then
32
+ if ! pg_dump -Fc -h " $db_host " -p " $db_port " -U " $db_user " ${DB_NAME} -f ${backup_progress_file_path } .in_progress; then
30
33
log " [ERROR] Failed to produce custom backup database ${DB_NAME} "
31
34
exit 1
32
35
else
33
36
# finalize database backup
34
- mv ${backup_file_path } .in_progress ${backup_file_path}
37
+ mv ${backup_progress_file_path } .in_progress ${backup_file_path}
35
38
36
39
# perform backup of database roles
37
40
if [[ " ${PERFORM_BACKUP_ROLES} " == " 1" ]]; then
38
41
log " Dumping roles backup for ${DB_NAME} database to ${backup_roles_file_path} "
39
- pg_dumpall -r -h " $db_host " -p " $db_port " -U postgres -f ${backup_roles_file_path } .in_progress
40
- cat ${backup_roles_file_path } .in_progress | grep -v ${IGNORE_DUMP_ROLES} > " ${backup_roles_file_path} "
41
- rm -f ${backup_roles_file_path } .in_progress
42
+ pg_dumpall -r -h " $db_host " -p " $db_port " -U postgres -f ${backup_progress_roles_file_path } .in_progress
43
+ cat ${backup_progress_roles_file_path } .in_progress | grep -v ${IGNORE_DUMP_ROLES} > " ${backup_roles_file_path} "
44
+ rm -f ${backup_progress_roles_file_path } .in_progress
42
45
fi
43
46
44
47
# perform copy backup to S3-compatible storage
0 commit comments