Skip to content

Commit 3e7fd9b

Browse files
authored
Merge pull request #21 from silinternational/checksum-feature
Checksum fix
2 parents e55dae0 + 2ef8ed5 commit 3e7fd9b

File tree

1 file changed

+31
-14
lines changed

1 file changed

+31
-14
lines changed

application/backup.sh

+31-14
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,17 @@ sha256sum "${DB_NAME}.sql" > "${DB_NAME}.sql.sha256" || {
7373
error_to_sentry "${error_message}" "${DB_NAME}" "1";
7474
exit 1;
7575
}
76+
log "DEBUG" "Checksum file contents: $(cat "${DB_NAME}.sql.sha256")";
77+
78+
# Validate checksum
79+
log "INFO" "${MYNAME}: Validating backup checksum";
80+
sha256sum -c "${DB_NAME}.sql.sha256" || {
81+
error_message="${MYNAME}: FATAL: Checksum validation failed for backup of ${DB_NAME}";
82+
log "ERROR" "${error_message}";
83+
error_to_sentry "${error_message}" "${DB_NAME}" "1";
84+
exit 1;
85+
}
86+
log "INFO" "${MYNAME}: Checksum validation successful";
7687

7788
# Compression
7889
start=$(date +%s);
@@ -88,29 +99,32 @@ else
8899
log "INFO" "${MYNAME}: Compressing backup of ${DB_NAME} completed in $(expr ${end} - ${start}) seconds.";
89100
fi
90101

91-
# Validate checksum
92-
log "INFO" "Validating backup checksum"
93-
# Optional: Added this line for debug
94-
log "DEBUG" "Checksum file contents: $(cat "${DB_NAME}.sql.sha256")"
95-
96-
sha256sum -c "${DB_NAME}.sql.sha256" || {
97-
error_message="${MYNAME}: FATAL: Checksum validation failed for backup of ${DB_NAME}";
98-
log "ERROR" "${error_message}";
99-
error_to_sentry "${error_message}" "${DB_NAME}" "1";
100-
exit 1;
101-
}
102+
# Compress checksum file
103+
gzip -f "${DB_NAME}.sql.sha256";
104+
if [ $? -ne 0 ]; then
105+
log "WARN" "${MYNAME}: Failed to compress checksum file, but continuing backup process";
106+
fi
102107

103-
# S3 Upload
108+
# Upload compressed backup file to S3
104109
start=$(date +%s);
105110
s3cmd put /tmp/${DB_NAME}.sql.gz ${S3_BUCKET} || STATUS=$?;
106-
end=$(date +%s);
107111
if [ $STATUS -ne 0 ]; then
108112
error_message="${MYNAME}: FATAL: Copy backup to ${S3_BUCKET} of ${DB_NAME} returned non-zero status ($STATUS) in $(expr ${end} - ${start}) seconds.";
109113
log "ERROR" "${error_message}";
110114
error_to_sentry "${error_message}" "${DB_NAME}" "${STATUS}";
111115
exit $STATUS;
116+
fi
117+
118+
# Upload checksum file
119+
s3cmd put /tmp/${DB_NAME}.sql.sha256.gz ${S3_BUCKET} || STATUS=$?;
120+
end=$(date +%s);
121+
if [ $STATUS -ne 0 ]; then
122+
error_message="${MYNAME}: FATAL: Copy checksum to ${S3_BUCKET} of ${DB_NAME} returned non-zero status ($STATUS).";
123+
log "ERROR" "${error_message}";
124+
error_to_sentry "${error_message}" "${DB_NAME}" "${STATUS}";
125+
exit $STATUS;
112126
else
113-
log "INFO" "${MYNAME}: Copy backup to ${S3_BUCKET} of ${DB_NAME} completed in $(expr ${end} - ${start}) seconds.";
127+
log "INFO" "${MYNAME}: Copy backup and checksum to ${S3_BUCKET} of ${DB_NAME} completed in $(expr ${end} - ${start}) seconds.";
114128
fi
115129

116130
# Backblaze B2 Upload
@@ -136,6 +150,9 @@ fi
136150

137151
echo "postgresql-backup-restore: backup: Completed";
138152

153+
# Clean up temporary files
154+
rm -f "/tmp/${DB_NAME}.sql.gz" "/tmp/${DB_NAME}.sql.sha256.gz";
155+
139156
log "INFO" "${MYNAME}: backup: Completed";
140157

141158
exit $STATUS;

0 commit comments

Comments
 (0)