← back to Handbag Auth Nextjs

scripts/setup-cron.sh

42 lines

#!/bin/bash
# Setup cron job for RSS feed polling

PROJECT_DIR="/root/Projects/handbag-auth-nextjs"
LOG_DIR="/var/log/handbag-auth"
NODE_PATH=$(which node)
NPM_PATH=$(which npm)

# Create log directory
sudo mkdir -p $LOG_DIR
sudo chown $USER:$USER $LOG_DIR

# Add cron jobs
(
  crontab -l 2>/dev/null | grep -v "handbag-rss-poll" | grep -v "handbag-price-snapshot" | grep -v "handbag-affiliate-crawl"
  echo "*/15 * * * * cd $PROJECT_DIR && $NPM_PATH run poll-rss >> $LOG_DIR/rss-poll.log 2>&1"
  echo "0 0 * * * cd $PROJECT_DIR && $NPM_PATH run price-snapshot >> $LOG_DIR/price-snapshot.log 2>&1"
  echo "0 6 * * * cd $PROJECT_DIR && npx ts-node --esm scripts/crawlAffiliateSites.ts >> $LOG_DIR/affiliate-crawl.log 2>&1"
) | crontab -

echo "Cron jobs installed successfully!"
echo ""
echo "1. RSS feeds will be polled every 15 minutes"
echo "   Logs: $LOG_DIR/rss-poll.log"
echo ""
echo "2. Price snapshots will be collected daily at midnight"
echo "   Logs: $LOG_DIR/price-snapshot.log"
echo ""
echo "3. Affiliate sites will be crawled daily at 6:00 AM"
echo "   Logs: $LOG_DIR/affiliate-crawl.log"
echo "   Crawls top 20 luxury brands only"
echo ""
echo "To view cron schedule:"
echo "  crontab -l"
echo ""
echo "To view logs:"
echo "  tail -f $LOG_DIR/rss-poll.log"
echo ""
echo "To remove cron job:"
echo "  crontab -e"
echo "  (delete the line containing 'handbag-rss-poll')"