#!/bin/bash # 获取当前脚本所在目录 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # 定义日志文件路径 CRON_LOG_FILE="$SCRIPT_DIR/cron_grab.log" API_LOG_FILE="$SCRIPT_DIR/api_grab.log" # 定义要执行的命令 COMMAND="python3 $SCRIPT_DIR/run.py" # 定义定时任务的执行间隔(例如每四小时一次) INTERVAL="4" # 添加定时任务到 crontab (crontab -l 2>/dev/null; echo "0 */$INTERVAL * * * $COMMAND >> $CRON_LOG_FILE 2>&1 && echo '运行成功'") | crontab - echo "====================================" echo "定时爬取 成功设置,时间间隔:4h" echo "定时任务日志:$CRON_LOG_FILE" echo "====================================" # 后台运行服务端,将数据映射到API echo "****正在启动API服务****" nohup python3 $SCRIPT_DIR/server.py > $API_LOG_FILE 2>&1 & API_PID=$! sleep 5 # 等待API服务启动,可能需要调整等待时间 echo "API 服务已启动:http://localhost:1223" echo "API 服务日志:$API_LOG_FILE" echo "API 服务进程号:$API_PID" echo "API 服务关闭命令:kill -9 $API_PID" echo "文档地址:https://blog.qyliu.top/posts/4dc716ec/" echo "====================================" # 用户选择是否执行爬取 read -p "选择操作:0 - 退出, 1 - 执行一次爬取: " USER_CHOICE if [ "$USER_CHOICE" -eq 1 ]; then echo "****正在执行一次爬取****" python3 $SCRIPT_DIR/run.py echo "****爬取成功****" else echo "退出选项被选择。" fi