Updated backup Script
This commit is contained in:
parent
1c930526c1
commit
8ae0fab1ee
1 changed files with 52 additions and 13 deletions
|
|
@ -29,7 +29,7 @@
|
|||
# OMV -> System -> Scheduled Jobs
|
||||
#
|
||||
# Backup destination: /export/kingdezignsnas-16/Public/07 - Projects/NAS16/fundtracker
|
||||
# Script location: /usr/scripts/fundtracker-backup.sh
|
||||
# Script location: /usr/scripts/fundtracker/fundtracker-backup.sh
|
||||
# =============================================================================
|
||||
|
||||
set -uo pipefail
|
||||
|
|
@ -65,12 +65,14 @@ DATE=$(date +%Y-%m-%d)
|
|||
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
|
||||
REPORT_TIME=$(date "+%Y-%m-%d %H:%M:%S")
|
||||
|
||||
ARCHIVE_NAME="fundtracker-backup-${TIMESTAMP}.tar.gz"
|
||||
|
||||
TMP_DIR="${TMP_BASE}/fundtracker-${TIMESTAMP}"
|
||||
|
||||
LOG_FILE="${BACKUP_ROOT}/backup.log"
|
||||
|
||||
# Variable placeholder for version (populated dynamically during run)
|
||||
SITE_VERSION="unknown"
|
||||
ARCHIVE_NAME="fundtracker-backup-${TIMESTAMP}.tar.gz"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# STATUS TRACKING
|
||||
# -----------------------------------------------------------------------------
|
||||
|
|
@ -146,7 +148,6 @@ log_section "FundTracker Backup Starting"
|
|||
|
||||
ARCHIVE_SIZE="N/A"
|
||||
BACKUP_COUNT=0
|
||||
FINAL_ARCHIVE="${BACKUP_ROOT}/${ARCHIVE_NAME}"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# PRE-FLIGHT CHECK 1 — NAS16 STORAGE
|
||||
|
|
@ -251,9 +252,41 @@ fi
|
|||
if [ "$OVERALL_STATUS" = "FAILED" ]; then
|
||||
|
||||
log "Pre-flight checks failed. Backup will not proceed."
|
||||
FINAL_ARCHIVE="${BACKUP_ROOT}/${ARCHIVE_NAME}"
|
||||
|
||||
else
|
||||
|
||||
# =========================================================================
|
||||
# QUERY SITE VERSION FROM DATABASE
|
||||
# =========================================================================
|
||||
|
||||
log_section "Retrieving site version from database"
|
||||
|
||||
QUERY_VERSION=$(docker exec "$DB_CONTAINER" psql -U "$DB_USER" -d "$DB_NAME" -t -A -c \
|
||||
"SELECT version_number FROM project_versions WHERE status = 'deployed' ORDER BY deployed_at DESC NULLS LAST LIMIT 1;" 2>/dev/null || true)
|
||||
|
||||
QUERY_VERSION="$(echo "${QUERY_VERSION}" | xargs)"
|
||||
|
||||
if [ -n "$QUERY_VERSION" ]; then
|
||||
SITE_VERSION="$QUERY_VERSION"
|
||||
ARCHIVE_NAME="fundtracker-v${SITE_VERSION}-backup-${TIMESTAMP}.tar.gz"
|
||||
log "Deployed site version detected: v${SITE_VERSION}"
|
||||
|
||||
add_section_row \
|
||||
"Project Version Check" \
|
||||
"OK" \
|
||||
"Detected deployed version v${SITE_VERSION}"
|
||||
else
|
||||
log "WARNING: Could not retrieve deployed version from 'project_versions' table. Using default naming."
|
||||
|
||||
add_section_row \
|
||||
"Project Version Check" \
|
||||
"WARNING" \
|
||||
"Version query returned empty; falling back to standard naming"
|
||||
fi
|
||||
|
||||
FINAL_ARCHIVE="${BACKUP_ROOT}/${ARCHIVE_NAME}"
|
||||
|
||||
# Create temporary working directory
|
||||
mkdir -p "$TMP_DIR"
|
||||
|
||||
|
|
@ -270,9 +303,6 @@ else
|
|||
DB_DUMP="${DB_DIR}/fundtracker.sql"
|
||||
|
||||
# pg_dump runs inside the PostgreSQL container.
|
||||
#
|
||||
# This is the same method documented by the FundTracker project itself.
|
||||
#
|
||||
# No database password is stored in this backup script.
|
||||
|
||||
if docker exec "$DB_CONTAINER" \
|
||||
|
|
@ -373,6 +403,9 @@ Host:
|
|||
Backup date:
|
||||
$(date)
|
||||
|
||||
Site Version:
|
||||
v${SITE_VERSION}
|
||||
|
||||
Project source:
|
||||
${PROJECT_DIR}
|
||||
|
||||
|
|
@ -563,7 +596,7 @@ MANIFEST_EOF
|
|||
log_section "Rotating old FundTracker backups"
|
||||
|
||||
BACKUP_LIST=$(ls -1t \
|
||||
"${BACKUP_ROOT}"/fundtracker-backup-*.tar.gz \
|
||||
"${BACKUP_ROOT}"/fundtracker-*.tar.gz \
|
||||
2>/dev/null || true)
|
||||
|
||||
BACKUP_COUNT=$(echo "$BACKUP_LIST" | grep -c . || true)
|
||||
|
|
@ -609,6 +642,7 @@ fi
|
|||
|
||||
log_section "FundTracker Backup Complete"
|
||||
|
||||
log "Site Version: ${SITE_VERSION}"
|
||||
log "Archive: ${FINAL_ARCHIVE:-N/A}"
|
||||
log "Size: ${ARCHIVE_SIZE:-N/A}"
|
||||
log "Status: ${OVERALL_STATUS}"
|
||||
|
|
@ -849,6 +883,13 @@ $ARCHIVE_CARD
|
|||
|
||||
<tr><td colspan="2" style="height:6px;"></td></tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:13px;color:#6b7280;">Site Version</td>
|
||||
<td style="font-size:13px;color:#111827;font-weight:600;">v$SITE_VERSION</td>
|
||||
</tr>
|
||||
|
||||
<tr><td colspan="2" style="height:6px;"></td></tr>
|
||||
|
||||
<tr>
|
||||
<td style="font-size:13px;color:#6b7280;">Project Files</td>
|
||||
<td style="font-family:monospace;font-size:11px;color:#111827;font-weight:600;">$PROJECT_DIR</td>
|
||||
|
|
@ -969,5 +1010,3 @@ if [ "$OVERALL_STATUS" = "FAILED" ]; then
|
|||
else
|
||||
exit 0
|
||||
fi
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue