小调整

This commit is contained in:
MasonLiu 2026-05-11 21:46:19 +08:00
parent 29819b8dbc
commit fbf2c60e59
5 changed files with 115 additions and 20 deletions

View File

@ -1,4 +1,17 @@
## 持续更新中 <br> # 🛡️ SecPulse - 赛博脉动
> 面向网络安全领域的智能资讯聚合与推送系统
<div align="center">
[![Python](https://img.shields.io/badge/Python-3.6+-blue.svg)](https://www.python.org/)
[![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
**实时感知安全领域的脉搏跳动** 🔔
</div>
## 🚀 快速开始 <br>
RSS订阅链接来源https://github.com/zhengjim/Chinese-Security-RSS <br> RSS订阅链接来源https://github.com/zhengjim/Chinese-Security-RSS <br>
使用python-json进行格式化然后使用飞书webhook机器人进行发送 <br> 使用python-json进行格式化然后使用飞书webhook机器人进行发送 <br>
./config/config.yaml 可指定发送渠道、运行方式等基础配置信息 <br> ./config/config.yaml 可指定发送渠道、运行方式等基础配置信息 <br>
@ -6,15 +19,26 @@ RSS订阅链接来源https://github.com/zhengjim/Chinese-Security-RSS <br>
./config/github_config.yaml 可指定Github相关参数支持热修改 <br> ./config/github_config.yaml 可指定Github相关参数支持热修改 <br>
更新记录请查看./UpdateLOG.md 更新记录请查看./UpdateLOG.md
### 📱 推送渠道 <br>
目前支持以下推送渠道: <br>
- 飞书Feishu <br>
- 企业微信WeChat Work <br>
#### 后续更新渠道: <br>
- 钉钉DingTalk <br>
- 蓝信Lanxin <br>
#### 停更渠道: <br>
邮件Email中断开发 <br>
### 项目特色 <br> ### 项目特色 <br>
- 模块化爬虫获取信息部分、分析对获取的json信息进行筛选分析存储、推送推送至各渠道、网页等各模块均可单独运行。 <br> - 模块化爬虫获取信息部分、分析对获取的json信息进行筛选分析存储、推送推送至各渠道、网页等各模块均可单独运行。 <br>
- 轻量化默认使用sqlite以及其他常见的各系统自带的库用户仅需配置python环境不会占用过多内存。 <br> - 轻量化默认使用sqlite以及其他常见的各系统自带的库用户仅需配置python环境不会占用过多内存。 <br>
- 简单化配置好config后即可一步运行效率极高。 <br> - 简单化配置好config后即可一步运行效率极高。 <br>
### 日志相关 ### 日志相关 <br>
请查看./resources/log文件夹下内容 <br> 请查看./resources/log文件夹下内容 <br>
### 使用建议: <br> ### 🖥️ Linux后台运行建议: <br>
Linux系统建议下载screen于后台持续运行本脚本。 <br> Linux系统建议下载screen于后台持续运行本脚本。 <br>
debian/ubuntu/kali: `apt install screen` <br> debian/ubuntu/kali: `apt install screen` <br>
centos: `yum install screen` <br> centos: `yum install screen` <br>
@ -23,6 +47,8 @@ centos: `yum install screen` <br>
重新进入会话:`screen -r 会话名称` <br> 重新进入会话:`screen -r 会话名称` <br>
结束对话:进入会话后输入`exit` <br> 结束对话:进入会话后输入`exit` <br>
当然您也可以直接使用install脚本一键注册systemd服务注意请将Core.py主函数中的send_first_message()注释掉,防止反复触发首次运行效果) <br>
### 使用方法: <br> ### 使用方法: <br>
先下载支持库:`pip install -r requirements.txt` <br> 先下载支持库:`pip install -r requirements.txt` <br>
随后便可直接运行:`python Core.py` <br> 随后便可直接运行:`python Core.py` <br>
@ -30,7 +56,7 @@ web运行`python ./web/app.py` <br>
随后web网页将会在本地9801端口启动访问即可使用反向代理即可以域名映射到外网 <br> 随后web网页将会在本地9801端口启动访问即可使用反向代理即可以域名映射到外网 <br>
直接访问web域名即可查看历史推送访问路径/log即可查看程序运行日志/weblog查看flask日志 <br> 直接访问web域名即可查看历史推送访问路径/log即可查看程序运行日志/weblog查看flask日志 <br>
或者直接运行install.sh即可目前脚本存在一定问题正在尽力修复。 或者直接运行install.sh即可目前脚本存在一定问题正在尽力修复。 <br>
### 配置 <br> ### 配置 <br>
首先先在飞书中创建群组然后再创建WebHook机器人 <br> 首先先在飞书中创建群组然后再创建WebHook机器人 <br>
@ -51,8 +77,19 @@ web运行`python ./web/app.py` <br>
`./config/github_config.yaml`中可配置github_token <br> `./config/github_config.yaml`中可配置github_token <br>
### 运行结果 <br> ### 📊 运行效果展示 <br>
<center><img src="./resources/imgs/run.jpg" width="50%" alt="后端"/></center><br> <center><img src="./resources/imgs/run.jpg" width="50%" alt="后端"/></center><br>
<center><img src="./resources/imgs/start.jpg" width="50%" alt="飞书运行提示"/></center><br> <center><img src="./resources/imgs/start.jpg" width="50%" alt="飞书运行提示"/></center><br>
<center><img src="./resources/imgs/result.jpg" width="50%" alt="飞书运行展示"/></center><br> <center><img src="./resources/imgs/result.jpg" width="50%" alt="飞书运行展示"/></center><br>
<center><img src="./resources/imgs/result_mobile.jpg" width="70%" alt="飞书运行展示-安卓"/></center><br> <center><img src="./resources/imgs/result_mobile.jpg" width="70%" alt="飞书运行展示-安卓"/></center><br>
### 📝 更新日志 <br>
详细的更新记录请查看 [UpdateLOG.md](./UpdateLOG.md)
### 🤝 贡献指南 <br>
欢迎提交Issue和Pull Request来改进本项目<br>
您也可以通过QQ2857911564或者发送邮件admin@masonliu.com给我反馈问题。<br>
### 🙏 致谢 <br>
RSS订阅链接来源[Chinese-Security-RSS](https://github.com/zhengjim/Chinese-Security-RSS) <br>
感谢所有为开源社区做出贡献的开发者 <br>

View File

@ -51,4 +51,5 @@
- 2025年01月24日早修复了json文件为空时程序中断的问题并优化了报错逻辑 - 2025年01月24日早修复了json文件为空时程序中断的问题并优化了报错逻辑
- 2025年03月10日早为程序添加了通用rss接口可支持更多rss源 - 2025年03月10日早为程序添加了通用rss接口可支持更多rss源
- 2025年03月14日晚为程序添加了通用rss发送程序同时修复了一个神奇的bug现可支持更多rss源 - 2025年03月14日晚为程序添加了通用rss发送程序同时修复了一个神奇的bug现可支持更多rss源
- 2026年05月04日晚更新了当前的WEB UI样式并重新启动程序开发计划 - 2026年05月04日晚更新了当前的WEB UI样式并重新启动程序开发计划
- 2026年05月11日晚稍微更新了一下sh脚本项目更名为SecPulse赛博脉动

View File

@ -36,15 +36,27 @@ detect_python() {
detect_python detect_python
# ========= 检查 pip 是否可用 =========
if ! $PYTHON_CMD -m pip --version >/dev/null 2>&1; then
echo "❌ pip 未安装或不可用,请先安装 pip"
exit 1
fi
# ========= 安装依赖 ========= # ========= 安装依赖 =========
if [ -f "$BASE_DIR/requirements.txt" ]; then if [ -f "$BASE_DIR/requirements.txt" ]; then
echo "安装 Python 依赖..." echo "安装 Python 依赖..."
# $PYTHON_CMD -m pip install --upgrade pip # 升级 pip 到最新版本
$PYTHON_CMD -m pip install --upgrade pip
$PYTHON_CMD -m pip install -r "$BASE_DIR/requirements.txt" $PYTHON_CMD -m pip install -r "$BASE_DIR/requirements.txt"
else else
echo "⚠️ 未找到 requirements.txt跳过依赖安装" echo "⚠️ 未找到 requirements.txt跳过依赖安装"
fi fi
# ========= 创建必要的目录结构 =========
mkdir -p "$BASE_DIR/resources/log"
mkdir -p "$BASE_DIR/resources/history"
mkdir -p "$BASE_DIR/resources/db"
# ========= 创建 PyBot 服务 ========= # ========= 创建 PyBot 服务 =========
sudo bash -c "cat > /etc/systemd/system/PyBot.service" <<EOF sudo bash -c "cat > /etc/systemd/system/PyBot.service" <<EOF
[Unit] [Unit]

View File

@ -6,6 +6,11 @@ echo "=============================="
echo "开始卸载 PyBot 系统服务" echo "开始卸载 PyBot 系统服务"
echo "==============================" echo "=============================="
# 检查是否以 root 权限运行(部分操作需要)
if [ "$EUID" -ne 0 ]; then
echo "⚠️ 某些操作可能需要 sudo 权限"
fi
for SERVICE in "${SERVICES[@]}"; do for SERVICE in "${SERVICES[@]}"; do
echo "" echo ""
echo ">>> 处理服务: $SERVICE" echo ">>> 处理服务: $SERVICE"
@ -14,6 +19,7 @@ for SERVICE in "${SERVICES[@]}"; do
if systemctl is-active --quiet $SERVICE; then if systemctl is-active --quiet $SERVICE; then
echo "停止服务..." echo "停止服务..."
sudo systemctl stop $SERVICE sudo systemctl stop $SERVICE
sleep 2 # 等待服务完全停止
else else
echo "服务未运行" echo "服务未运行"
fi fi
@ -35,12 +41,18 @@ for SERVICE in "${SERVICES[@]}"; do
echo "未找到服务文件" echo "未找到服务文件"
fi fi
# 4. 杀残留进程(保险 # 4. 杀残留进程(更精确的匹配
echo "检查残留进程..." echo "检查残留进程..."
PIDS=$(ps -ef | grep $SERVICE | grep -v grep | awk '{print $2}') # 使用更精确的进程匹配方式,避免误杀其他进程
PIDS=$(pgrep -f "${SERVICE}\.py" 2>/dev/null || pgrep -f "python.*${SERVICE}" 2>/dev/null)
if [ -n "$PIDS" ]; then if [ -n "$PIDS" ]; then
echo "杀死残留进程: $PIDS" echo "杀死残留进程: $PIDS"
sudo kill -9 $PIDS sudo kill -15 $PIDS 2>/dev/null # 先尝试正常终止
sleep 2
# 如果进程仍然存在,强制终止
if ps -p $PIDS > /dev/null; then
sudo kill -9 $PIDS 2>/dev/null
fi
else else
echo "无残留进程" echo "无残留进程"
fi fi
@ -53,21 +65,54 @@ echo "重新加载 systemd..."
sudo systemctl daemon-reload sudo systemctl daemon-reload
sudo systemctl daemon-reexec sudo systemctl daemon-reexec
# 6. 可选清理日志 # 6. 可选清理日志和数据
read -p "是否清理 PyBot 日志?(y/n): " CLEAN_LOG echo ""
if [ "$CLEAN_LOG" == "y" ]; then read -p "是否清理 PyBot 日志文件?(y/n): " CLEAN_LOG
if [ "$CLEAN_LOG" == "y" ] || [ "$CLEAN_LOG" == "Y" ]; then
echo "清理应用日志..."
rm -f ./resources/log/core.log
rm -f ./resources/log/app.log
echo "清理 journal 日志保留1天..." echo "清理 journal 日志保留1天..."
sudo journalctl --vacuum-time=1d sudo journalctl --vacuum-time=1d 2>/dev/null || echo "journalctl 清理跳过(可能无权限)"
fi
read -p "是否清理历史数据和缓存?(y/n): " CLEAN_DATA
if [ "$CLEAN_DATA" == "y" ] || [ "$CLEAN_DATA" == "Y" ]; then
echo "清理历史数据..."
rm -f ./resources/history/*.md
rm -f ./resources/JSON/*.json
echo "注意:配置文件已保留,如需删除请手动操作 config/ 目录"
fi
# 7. 可选:询问是否删除虚拟环境(如果存在)
if [ -d "venv" ] || [ -d ".venv" ]; then
read -p "是否删除 Python 虚拟环境?(y/n): " CLEAN_VENV
if [ "$CLEAN_VENV" == "y" ] || [ "$CLEAN_VENV" == "Y" ]; then
echo "删除虚拟环境..."
rm -rf venv .venv
fi
fi fi
echo "" echo ""
echo "==============================" echo "=============================="
echo "卸载完成 ✅" echo "卸载完成 ✅"
echo "==============================" echo "=============================="
echo ""
echo "📝 提示:"
echo " - 配置文件保留在 config/ 目录"
echo " - 如需完全删除项目,请手动删除整个项目文件夹"
echo " - Python 依赖包未卸载,如需要可运行: pip uninstall -r requirements.txt"
echo ""
# 7. 验证 # 8. 验证
for SERVICE in "${SERVICES[@]}"; do for SERVICE in "${SERVICES[@]}"; do
echo ""
echo "验证服务: $SERVICE" echo "验证服务: $SERVICE"
systemctl status $SERVICE 2>&1 | grep "could not be found" && echo "✔ 已彻底删除" || echo "⚠ 可能仍存在" if systemctl status $SERVICE 2>&1 | grep -q "could not be found"; then
done echo " ✔ 服务已彻底删除"
else
echo " ⚠ 服务可能仍存在,请检查"
fi
done
echo ""
echo "感谢使用 PyBot👋"

View File

@ -1,4 +1,4 @@
## PyBot RSS订阅机器人未来更新计划 ## SecPulse RSS订阅机器人未来更新计划
#### 新功能计划 #### 新功能计划
1. Web界面全面转向PHP并将于未来与综合导航频道Infosec Navigator合并 1. Web界面全面转向PHP并将于未来与综合导航频道Infosec Navigator合并
2. 数据库将由sqlite转型为MySQL 2. 数据库将由sqlite转型为MySQL
@ -10,5 +10,5 @@
#### 旧功能更新 #### 旧功能更新
1. 优化通用RSS订阅功能 1. 优化通用RSS订阅功能
2. 优化PyBot程序运行中可能产生的问题当前已知Baidu源会导致程序异常中断 2. 优化SecPulse程序运行中可能产生的问题当前已知Baidu源会导致程序异常中断
3. 优化Linux服务注册脚本 3. 优化Linux服务注册脚本