← back to Watches

setup-price-monitoring.sh

59 lines

#!/bin/bash

# Setup automated daily price monitoring at 6 AM
# Creates cron job and initializes database

echo "🔧 Setting up automated price monitoring..."

# Make monitoring script executable
chmod +x /root/Projects/watches/utils/price-monitor.js

# Create cron job for 6 AM daily
CRON_JOB="0 6 * * * cd /root/Projects/watches && /usr/bin/node utils/price-monitor.js >> /var/log/watch-price-monitor.log 2>&1"

# Check if cron job already exists
if crontab -l 2>/dev/null | grep -q "price-monitor.js"; then
    echo "⚠️  Cron job already exists"
    echo "Current cron jobs:"
    crontab -l | grep "price-monitor.js"
else
    # Add cron job
    (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab -
    echo "✓ Cron job created - runs daily at 6:00 AM"
fi

# Create log file
touch /var/log/watch-price-monitor.log
chmod 644 /var/log/watch-price-monitor.log
echo "✓ Log file created: /var/log/watch-price-monitor.log"

# Initialize database
echo ""
echo "📊 Initializing database..."
cd /root/Projects/watches
node -e "
import PriceMonitor from './utils/price-monitor.js';
const monitor = new PriceMonitor();
await monitor.initDatabase();
console.log('✓ Database initialized');
process.exit(0);
"

echo ""
echo "✅ Setup complete!"
echo ""
echo "📋 Summary:"
echo "  - Cron job: Daily at 6:00 AM"
echo "  - Database: price_history table created"
echo "  - CSV storage: /root/Projects/watches/data/price-history-csv/"
echo "  - Logs: /var/log/watch-price-monitor.log"
echo ""
echo "🔍 Manual test run:"
echo "  node /root/Projects/watches/utils/price-monitor.js"
echo ""
echo "📊 View cron jobs:"
echo "  crontab -l"
echo ""
echo "📈 View logs:"
echo "  tail -f /var/log/watch-price-monitor.log"