Compare commits

...

2 Commits

Author SHA1 Message Date
Asif Bacchus
7e92495c94 Check exitcode from within redis container after cli-save 2018-10-25 13:26:22 -06:00
Asif Bacchus
0808888030 Check dump exitcode from within mysql container 2018-10-25 13:18:31 -06:00

View File

@ -571,10 +571,18 @@ fi
### Dump SQL
echo -e "${op}${stamp} Dumping mailcow SQL database...${normal}" >> "$logFile"
docker-compose exec mysql-mailcow mysqldump --default-character-set=utf8mb4 -u${DBUSER} -p${DBPASS} ${DBNAME} > "$sqlDumpDir/$sqlDumpFile" 2>> "$logFile"
## error checking sqldump within the container in a cron-friendly manner is a
## nightmare, so let's just see if a non-empty file with the expected name was
## created
docker-compose exec mysql-mailcow mysqldump --default-character-set=utf8mb4 \
-u${DBUSER} -p${DBPASS} ${DBNAME} > "$sqlDumpDir/$sqlDumpFile" \
2>> "$logFile"
dumpResult=$(docker-compose exec -T mysql-mailcow echo "$?")
## very mysqldump completed successfully
if [ "$dumpResult" = "0" ]; then
echo -e "${info}${stamp} -- [INFO] mySQLdump completed successfully --" \
"${normal}" >> "$logFile"
else
exitError+=("${stamp}_201")
fi
## verify the dump file was actually written to disk
checkExist fs "$sqlDumpDir/$sqlDumpFile"
checkResult="$?"
if [ "$checkResult" = "0" ]; then
@ -585,16 +593,16 @@ checkExist fs "$sqlDumpDir/$sqlDumpFile"
fi
### Save redis state
## Delete any existing redis dump file otherwise our check will be useless
## Delete any existing redis dump file otherwise our file check will be useless
echo -e "${op}${stamp} Cleaning up old redis state backup...${normal}" \
>> "$logFile"
checkExist ff "$dockerVolumeRedis/dump.rdb"
checkResult="$?"
if [ "$checkResult" = "0" ]; then
echo -e "${lit}${stamp} Old redis backup found.${normal}" >> "$logFile"
echo -e "${op}Deleting...${normal}" >> "$logFile"
echo -e "${lit}${stamp} Old redis backup found. ${op}Deleting..." \
"${normal}" >> "$logFile"
rm -f "$dockerVolumeRedis/dump.rdb" 2>> "$logFile"
echo -e "${op}${stamp}...done${normal}" >> "$logFile"
echo -e "${op}${stamp} ...done${normal}" >> "$logFile"
else
echo -e "${op}${stamp} No old redis backup found${normal}" \
>> "$logFile"
@ -602,8 +610,15 @@ checkExist ff "$dockerVolumeRedis/dump.rdb"
## Export redis
echo -e "${op}${stamp} Saving redis state information...${normal}" >> "$logFile"
docker-compose exec redis-mailcow redis-cli save >> "$logFile" 2>&1
## although redis returns an 'OK' if successful, seemingly nothing can test for
## this... so let's just verify the dump file was written to disk
saveResult=$(docker-compose exec -T redis-mailcow echo "$?")
# verify save operation completed successfully
if [ "$saveResult" = "0" ]; then
echo -e "${info}${stamp} -- [INFO] redis save-state successful --" \
"${normal}" >> "$logFile"
else
exitError+=("${stamp}_202")
fi
## verify save-file written to disk
checkExist fs "$dockerVolumeRedis/dump.rdb"
checkResult="$?"
if [ "$checkResult" = "0" ]; then