← 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"