Files
SkyArtShop/verify-mongodb-connection.sh

104 lines
4.2 KiB
Bash
Raw Normal View History

#!/bin/bash
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ MongoDB Connection Verification ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo ""
# 1. Check MongoDB Service
echo "[1/5] MongoDB Service Status"
if systemctl is-active --quiet mongod; then
echo " ✅ MongoDB service is running"
UPTIME=$(systemctl show mongod --property=ActiveEnterTimestamp --value)
echo " 📅 Uptime: $UPTIME"
else
echo " ❌ MongoDB service is NOT running"
exit 1
fi
echo ""
# 2. Check MongoDB Port
echo "[2/5] MongoDB Network Binding"
if sudo ss -tulpn | grep -q 27017; then
echo " ✅ MongoDB listening on port 27017"
BIND=$(sudo ss -tulpn | grep 27017 | awk '{print $5}')
echo " 🔌 Binding: $BIND"
else
echo " ❌ MongoDB NOT listening on port 27017"
exit 1
fi
echo ""
# 3. Test Direct Connection
echo "[3/5] Direct MongoDB Connection Test"
if mongosh --quiet --eval "db.version()" SkyArtShopDB >/dev/null 2>&1; then
VERSION=$(mongosh --quiet --eval "db.version()" SkyArtShopDB 2>/dev/null)
echo " ✅ Can connect to MongoDB"
echo " 📦 Version: $VERSION"
COLLECTIONS=$(mongosh --quiet --eval "db.getCollectionNames().length" SkyArtShopDB 2>/dev/null)
echo " 📚 Collections: $COLLECTIONS"
PRODUCTS=$(mongosh --quiet --eval "db.Products.countDocuments()" SkyArtShopDB 2>/dev/null)
echo " 🛍️ Products: $PRODUCTS"
else
echo " ❌ Cannot connect to MongoDB"
exit 1
fi
echo ""
# 4. Check Application Configuration
echo "[4/5] Application MongoDB Configuration"
if [ -f /var/www/SkyArtShop/publish/appsettings.Production.json ]; then
CONN_STRING=$(grep -A 1 "ConnectionString" /var/www/SkyArtShop/publish/appsettings.Production.json | grep -oP '(?<=": ")[^"]+')
DB_NAME=$(grep -A 2 "MongoDB" /var/www/SkyArtShop/publish/appsettings.Production.json | grep "DatabaseName" | grep -oP '(?<=": ")[^"]+')
echo " ✅ Configuration file found"
echo " 🔗 Connection: $CONN_STRING"
echo " 💾 Database: $DB_NAME"
else
echo " ❌ Configuration file NOT found"
exit 1
fi
echo ""
# 5. Test Website Data Retrieval
echo "[5/5] Website Data Retrieval Test"
PRODUCTS_ON_PAGE=$(curl -s https://skyarts.ddns.net/Shop 2>&1 | grep -c "product-card")
if [ "$PRODUCTS_ON_PAGE" -gt 0 ]; then
echo " ✅ Website retrieving data from MongoDB"
echo " 📦 Products displayed: $PRODUCTS_ON_PAGE"
# Test admin dashboard
curl -c /tmp/mongo-test.txt -b /tmp/mongo-test.txt -X POST "https://skyarts.ddns.net/admin/login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "email=admin@skyartshop.com&password=Admin123!" \
-k -s -o /dev/null 2>&1
if curl -b /tmp/mongo-test.txt "https://skyarts.ddns.net/admin/products" -k -s 2>&1 | grep -q "product"; then
echo " ✅ Admin backend accessing MongoDB"
fi
rm -f /tmp/mongo-test.txt
else
echo " ❌ Website NOT retrieving data"
fi
echo ""
# Summary
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ ✅ CONNECTION VERIFIED ║"
echo "╚══════════════════════════════════════════════════════════════╝"
echo ""
echo "Architecture:"
echo " 🖥️ Linux Server: $(hostname)"
echo " 🌐 Web Application: ASP.NET Core 8.0 (localhost:5000)"
echo " 💾 MongoDB: Local (127.0.0.1:27017)"
echo " 🔒 Nginx Proxy: Public (skyarts.ddns.net:443)"
echo ""
echo "Data Flow:"
echo " Browser → Nginx (SSL) → ASP.NET App → MongoDB"
echo " (All running on the same Linux server)"
echo ""
echo "✅ Website is properly connected to MongoDB on this Linux server"
echo ""