Initial commit - Mold Cost Calculator Application (Security Fixed)

This commit is contained in:
Gan, Jimmy
2025-06-24 10:28:55 +08:00
commit 9b84cee5be
108 changed files with 15886 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
#!/bin/bash
# Configuration
BACKUP_DIR="/backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
DB_HOST="mold_cost_db"
DB_NAME="mold_cost"
DB_USER="postgres"
DB_PASSWORD="postgres"
# Create backup directory if it doesn't exist
mkdir -p "$BACKUP_DIR"
# Set PostgreSQL password environment variable
export PGPASSWORD="$DB_PASSWORD"
# Create backup with error handling
echo "Creating database backup at $(date)..."
if pg_dump -h "$DB_HOST" -U "$DB_USER" -d "$DB_NAME" --no-password | gzip > "$BACKUP_DIR/backup_$TIMESTAMP.sql.gz"; then
echo "Backup completed successfully: backup_$TIMESTAMP.sql.gz"
# Keep only the last 7 backups
echo "Cleaning up old backups..."
ls -t "$BACKUP_DIR"/backup_*.sql.gz | tail -n +8 | xargs -r rm
# Verify backup file exists and has content
if [ -f "$BACKUP_DIR/backup_$TIMESTAMP.sql.gz" ] && [ -s "$BACKUP_DIR/backup_$TIMESTAMP.sql.gz" ]; then
echo "Backup verification successful: $(du -h "$BACKUP_DIR/backup_$TIMESTAMP.sql.gz" | cut -f1)"
else
echo "ERROR: Backup file is empty or missing!"
exit 1
fi
else
echo "ERROR: Backup failed!"
exit 1
fi
# Clear password from environment
unset PGPASSWORD