Skip to content

Commit 9db9191

Browse files
authored
Merge pull request #40 from silinternational/develop
Release 4.2.0 --Added Checksum
2 parents dfc3022 + 0d26e2b commit 9db9191

File tree

1 file changed

+55
-7
lines changed

1 file changed

+55
-7
lines changed

application/backup.sh

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,34 @@ for dbName in ${DB_NAMES}; do
8080
log "INFO" "mysql-backup-restore: Backup of ${dbName} completed in $(expr ${end} - ${start}) seconds, ($(stat -c %s /tmp/${dbName}.sql) bytes)."
8181
fi
8282

83-
# Compression
83+
# Generate checksum for the backup file
84+
log "INFO" "mysql-backup-restore: Generating checksum for backup file"
85+
cd /tmp || {
86+
error_message="Failed to change directory to /tmp"
87+
error_to_sentry "$error_message" "$dbName" "1"
88+
log "ERROR" "mysql-backup-restore: FATAL: ${error_message}"
89+
exit 1
90+
}
91+
92+
sha256sum "${dbName}.sql" > "${dbName}.sql.sha256" || {
93+
error_message="Failed to generate checksum for backup of ${dbName}"
94+
error_to_sentry "$error_message" "$dbName" "1"
95+
log "ERROR" "mysql-backup-restore: FATAL: ${error_message}"
96+
exit 1
97+
}
98+
log "DEBUG" "Checksum file contents: $(cat "${dbName}.sql.sha256")"
99+
100+
# Validate checksum
101+
log "INFO" "mysql-backup-restore: Validating backup checksum"
102+
sha256sum -c "${dbName}.sql.sha256" || {
103+
error_message="Checksum validation failed for backup of ${dbName}"
104+
error_to_sentry "$error_message" "$dbName" "1"
105+
log "ERROR" "mysql-backup-restore: FATAL: ${error_message}"
106+
exit 1
107+
}
108+
log "INFO" "mysql-backup-restore: Checksum validation successful"
109+
110+
# Compress backup file
84111
start=$(date +%s)
85112
gzip -f /tmp/${dbName}.sql
86113
STATUS=$?
@@ -94,18 +121,36 @@ for dbName in ${DB_NAMES}; do
94121
log "INFO" "mysql-backup-restore: Compressing backup of ${dbName} completed in $(expr ${end} - ${start}) seconds."
95122
fi
96123

97-
# S3 Upload
124+
# Compress checksum file separately
125+
gzip -f "${dbName}.sql.sha256"
126+
if [ $? -ne 0 ]; then
127+
log "WARN" "mysql-backup-restore: Failed to compress checksum file, but continuing backup process"
128+
fi
129+
130+
# Upload both compressed files to S3
98131
start=$(date +%s)
132+
133+
# Upload backup file
99134
s3cmd put /tmp/${dbName}.sql.gz ${S3_BUCKET}
100135
STATUS=$?
101-
end=$(date +%s)
102136
if [ $STATUS -ne 0 ]; then
103137
error_message="S3 copy failed for database ${dbName} backup"
104138
error_to_sentry "$error_message" "$dbName" "$STATUS"
105-
log "ERROR" "mysql-backup-restore: FATAL: Copy backup to ${S3_BUCKET} of ${dbName} returned non-zero status ($STATUS) in $(expr ${end} - ${start}) seconds."
139+
log "ERROR" "mysql-backup-restore: FATAL: Copy backup to ${S3_BUCKET} of ${dbName} returned non-zero status ($STATUS)."
140+
exit $STATUS
141+
fi
142+
143+
# Upload checksum file
144+
s3cmd put /tmp/${dbName}.sql.sha256.gz ${S3_BUCKET}
145+
STATUS=$?
146+
end=$(date +%s)
147+
if [ $STATUS -ne 0 ]; then
148+
error_message="S3 copy failed for database ${dbName} checksum"
149+
error_to_sentry "$error_message" "$dbName" "$STATUS"
150+
log "ERROR" "mysql-backup-restore: FATAL: Copy checksum to ${S3_BUCKET} of ${dbName} returned non-zero status ($STATUS)."
106151
exit $STATUS
107152
else
108-
log "INFO" "mysql-backup-restore: Copy backup to ${S3_BUCKET} of ${dbName} completed in $(expr ${end} - ${start}) seconds."
153+
log "INFO" "mysql-backup-restore: Copy backup and checksum to ${S3_BUCKET} of ${dbName} completed in $(expr ${end} - ${start}) seconds."
109154
fi
110155

111156
# Backblaze B2 Upload (Optional)
@@ -128,8 +173,11 @@ for dbName in ${DB_NAMES}; do
128173
log "INFO" "mysql-backup-restore: Copy backup to Backblaze B2 bucket ${B2_BUCKET} of ${dbName} completed in $(expr ${end} - ${start}) seconds."
129174
fi
130175
fi
176+
177+
# Clean up temporary files
178+
rm -f "/tmp/${dbName}.sql.gz" "/tmp/${dbName}.sql.sha256.gz"
131179
done
132180

133-
echo "mysql-backup-restore: backup: Completed"
181+
log "INFO" "mysql-backup-restore: backup: Completed"
134182

135-
exit $STATUS
183+
exit $STATUS;

0 commit comments

Comments
 (0)