From 6944db98d4d65de695dce23c91ae35ea89da75b7 Mon Sep 17 00:00:00 2001 From: Asif Bacchus Date: Thu, 25 Jul 2019 00:26:42 -0600 Subject: [PATCH] add email export and cleanup --- .vscode/numbered-bookmarks.json | 18 ++++++++- pilerbackup.sh | 68 +++++++++++++++++---------------- 2 files changed, 53 insertions(+), 33 deletions(-) diff --git a/.vscode/numbered-bookmarks.json b/.vscode/numbered-bookmarks.json index 4c08963..42f0836 100644 --- a/.vscode/numbered-bookmarks.json +++ b/.vscode/numbered-bookmarks.json @@ -1,3 +1,19 @@ { - "bookmarks": [] + "bookmarks": [ + { + "fsPath": "$ROOTPATH$/pilerbackup.sh", + "bookmarks": [ + -1, + 332, + 65, + -1, + -1, + -1, + -1, + -1, + -1, + 576 + ] + } + ] } \ No newline at end of file diff --git a/pilerbackup.sh b/pilerbackup.sh index f76844c..8f99d88 100644 --- a/pilerbackup.sh +++ b/pilerbackup.sh @@ -63,6 +63,18 @@ cleanup () { "$(stamp)" >> "$logFile" fi fi + # remove EML temporary directory + if ! rm -f "$exportDir" 2>>"$logFile"; then + printf "${warn}[%s] -- [WARNING] Could not remove EML export tmp dir:" \ + "$(stamp)" >> "$logFile" + printf "\n%s\n" "$exportDir" >> "$logFile" + printf "please remove this directory manually! --${norm}\n" \ + >> "$logFile" + warnCount=$((warnCount+1)) + else + printf "${cyan}[%s] -- [INFO] EML temp directory removed --${norm}\n" \ + "$(stamp)" >> "$logFile" + fi } # call cleanup and then exit with error report @@ -311,43 +323,34 @@ printf "${cyan}[%s] -- [INFO] ${yellow}%s${cyan} imported --${norm}\n" \ "$(stamp)" "$configDetails" >> "$logFile" -## create tmp directory -printf "${cyan}[%s] -- [INFO] Dumping SQL databases --${norm}\n" \ +## create tmp directory and change to it for export operations +printf "${cyan}[%s] -- [INFO] Exporting EML files from piler --${norm}\n" \ "$(stamp)" >> "$logFile" # create temporary directory to dump files before borg backup -if ! sqlDumpDir=$( mktemp -d 2>>"$logFile" ); then - exitError 111 "Could not create temporary directory to dump SQL files" +if ! exportDir=$( mktemp -d 2>>"$logFile" ); then + exitError 111 "Could not create temporary directory for exported EML files" fi -# set cleanup flag -sqlCopied=1 -printf "${cyan}[%s] -- [INFO] SQL dump files will be temporarily stored in:" \ +if ! cd "$exportDir"; then + exitError 112 "Unable to change to temporary export directory" +fi +printf "${cyan}[%s] -- [INFO] EML files will be temporarily stored in:" \ "$(stamp)" >> "$logFile" -printf "\n${yellow}%s/${cyan} --${norm}\n" "$sqlDumpDir" >> "$logFile" -# create unique names for database dump files -sqlDump_ccnet="backup-$(date +%Y%m%d_%H%M%S)_${ccnetDB_name}.sql" -sqlDump_seafile="backup-$(date +%Y%m%d_%H%M%S)_${seafileDB_name}.sql" -sqlDump_seahub="backup-$(date +%Y%m%d_%H%M%S)_${seahubDB_name}.sql" +printf "\n${yellow}%s/${cyan} --${norm}\n" "$exportDir" >> "$logFile" -## dump databases -# dump CCNET-DB -if ! mysqldump -h"${sqlServer}" -u"${sqlUser}" -p"${sqlPass}" \ - --opt "${ccnetDB_name}" > "${sqlDumpDir}/${sqlDump_ccnet}" \ - 2>> "$logFile"; then - exitError 115 "Could not dump ${ccnetDB_name} database" +## export EML from piler +if [ "$exportAll" -eq 1 ]; then + if ! pilerexport -A 2>>"$logFile"; then + exitError 115 "There was a problem while exporting EML from piler" + fi + printf "${ok}[%s] -- [SUCCESS] Exported EML files from piler --${norm}\n" \ + "$(stamp)" >> "$logFile" +else + if ! pilerexport -a $exportStart -b $exportEnd 2>>"$logFile"; then + exitError 115 "There was a problem while exporting EML from piler" + fi + printf "${ok}[%s] -- [SUCCESS] Exported EML files from piler --${norm}\n" \ + "$(stamp)" >> "$logFile" fi -# dump SEAFILE-DB -if ! mysqldump -h"${sqlServer}" -u"${sqlUser}" -p"${sqlPass}" \ - --opt "${seafileDB_name}" > "${sqlDumpDir}/${sqlDump_seafile}" \ - 2>> "$logFile"; then - exitError 116 "Could not dump ${seafileDB_name} database" -fi -# dump CCNET-DB -if ! mysqldump -h"${sqlServer}" -u"${sqlUser}" -p"${sqlPass}" \ - --opt "${seahubDB_name}" > "${sqlDumpDir}/${sqlDump_seahub}" 2>> "$logFile"; then - exitError 117 "Could not dump ${seahubDB_name} database" -fi -printf "${ok}[%s] -- [SUCCESS] SQL databases dumped successfully --${norm}\n" \ - "$(stamp)" >> "$logFile" ### pre-backup tasks completed -- move to borg tasks @@ -577,7 +580,8 @@ exit 0 # 3: borg not installed # 99: TERM signal trapped # 111: could not create tmp dir for EML dump from piler-export -# 112: problem during piler-export operation +# 112: could not change to tmp dir to start export operation +# 115: problem during piler-export operation # 130: null configuration variable in details file # 131: invalid configuration variable in details file # 138: borg exited with a critical error