diff --git a/deploy.sh b/deploy.sh index 447cc0d..2ef70b9 100644 --- a/deploy.sh +++ b/deploy.sh @@ -4,31 +4,42 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # 定义日志文件路径 -CRON_LOG_FILE="$SCRIPT_DIR/cron_grab.log" -API_LOG_FILE="$SCRIPT_DIR/api_grab.log" +# CRON_LOG_FILE="$SCRIPT_DIR/cron_grab.log" +# API_LOG_FILE="$SCRIPT_DIR/api_grab.log" -# 定义要执行的命令 -COMMAND="python3 $SCRIPT_DIR/run.py" +# # 定义要执行的命令 +# COMMAND="python3 $SCRIPT_DIR/run.py" -# 定义定时任务的执行间隔(例如每四小时一次) -INTERVAL="4" +# # 定义定时任务的执行间隔(例如每四小时一次) +# INTERVAL="4" # 添加定时任务到 crontab -(crontab -l 2>/dev/null; echo "0 */$INTERVAL * * * $COMMAND >> $CRON_LOG_FILE 2>&1 && echo '运行成功'") | 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 "====================================" + + + +#!/bin/bash + +# 获取当前脚本所在目录 +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" + +# 定义 API 服务的启动命令 +API_COMMAND="python3 $SCRIPT_DIR/server.py" -echo "====================================" -echo "定时爬取 成功设置,时间间隔:4h" -echo "定时任务日志:$CRON_LOG_FILE" echo "====================================" # 后台运行服务端,将数据映射到API echo "****正在启动API服务****" -nohup python3 $SCRIPT_DIR/server.py > $API_LOG_FILE 2>&1 & +nohup $API_COMMAND &>/dev/null & 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/" @@ -43,4 +54,9 @@ if [ "$USER_CHOICE" -eq 1 ]; then echo "****爬取成功****" else echo "退出选项被选择,掰掰!" + +echo "====================================" +echo "定时抓取的部分请自行设置,如果有宝塔等面板可以按照说明直接添加,如果没有宝塔可以查看本脚本上面屏蔽的部分,自行添加到 crontab 中" +echo "====================================" + fi diff --git a/readme.md b/readme.md index 8b7bb90..0edbdc6 100644 --- a/readme.md +++ b/readme.md @@ -14,7 +14,8 @@ ### 2024-08-11 * 添加服务器部署的情况下,合并github结果的选项 -* 正在测试自部署是否成功 +* 由于复杂性,决定将服务和定时抓取分开,使用面板自带进行配置,防止小白无法配置 +* 修改文档,添加自部署部分 ### 2024-08-03 diff --git a/requirements-server.txt b/requirements-server.txt new file mode 100644 index 0000000..97dc7cd --- /dev/null +++ b/requirements-server.txt @@ -0,0 +1,2 @@ +fastapi +uvicorn diff --git a/server.py b/server.py index a09c076..ae42486 100644 --- a/server.py +++ b/server.py @@ -1,13 +1,8 @@ from fastapi import FastAPI from fastapi.responses import HTMLResponse, JSONResponse from starlette.middleware.cors import CORSMiddleware -import schedule -import time -import logging -import os import json import random -from threading import Lock, Thread from friend_circle_lite.get_info import fetch_and_process_data, sort_articles_by_time from friend_circle_lite.get_conf import load_config @@ -23,10 +18,6 @@ app.add_middleware( allow_headers=["*"], ) -# 配置日志记录 -log_file = "cron_grab" -logging.basicConfig(filename=log_file, level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') - @app.get("/", response_class=HTMLResponse) async def root(): try: @@ -74,10 +65,6 @@ async def get_random_article(): return JSONResponse(content={"error": "Failed to decode JSON"}, status_code=500) if __name__ == '__main__': - # 清空日志文件 - if os.path.exists(log_file): - with open(log_file, 'w'): - pass # 启动FastAPI应用 import uvicorn uvicorn.run(app, host='0.0.0.0', port=1223)