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