#!/bin/bash # Run Go vault in local mode inside Docker container # Add to crontab: */5 * * * * /path/to/scripts/vault-cron-prod.sh CONTAINER_NAME="cmc-prod-go" LOG_FILE="/home/cmc/logs/vault-go.log" # Ensure log directory exists mkdir -p "$(dirname "$LOG_FILE")" # Check if container is running if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then echo "$(date): Error: Container $CONTAINER_NAME is not running" >> "$LOG_FILE" exit 1 fi # Run vault in local mode echo "$(date): Starting vault processing..." >> "$LOG_FILE" docker exec -t "$CONTAINER_NAME" ./vault --mode=local \ --vaultdir=/var/www/vaultmsgs/new \ --processeddir=/var/www/vaultmsgs/cur \ --emaildir=/var/www/attachments_files \ --dbhost=cmc-prod-db \ --dbuser=cmc \ --dbpass="xVRQI&cA?7AU=hqJ!%au" \ --dbname=cmc \ >> "$LOG_FILE" 2>&1 EXIT_CODE=$? if [ $EXIT_CODE -eq 0 ]; then echo "$(date): Vault completed successfully" >> "$LOG_FILE" else echo "$(date): Vault failed with exit code $EXIT_CODE" >> "$LOG_FILE" fi exit $EXIT_CODE