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




+
+### 📝 更新日志
+详细的更新记录请查看 [UpdateLOG.md](./UpdateLOG.md)
+
+### 🤝 贡献指南
+欢迎提交Issue和Pull Request来改进本项目!
+您也可以通过QQ(2857911564)或者发送邮件(admin@masonliu.com)给我反馈问题。
+
+### 🙏 致谢
+RSS订阅链接来源:[Chinese-Security-RSS](https://github.com/zhengjim/Chinese-Security-RSS)
+感谢所有为开源社区做出贡献的开发者
\ No newline at end of file
diff --git a/UpdateLOG.md b/UpdateLOG.md
index 53f6936..c3f9985 100644
--- a/UpdateLOG.md
+++ b/UpdateLOG.md
@@ -51,4 +51,5 @@
- 2025年01月24日早:修复了json文件为空时程序中断的问题并优化了报错逻辑
- 2025年03月10日早:为程序添加了通用rss接口,可支持更多rss源
- 2025年03月14日晚:为程序添加了通用rss发送程序,同时修复了一个神奇的bug,现可支持更多rss源
-- 2026年05月04日晚:更新了当前的WEB UI样式并重新启动程序开发计划
\ No newline at end of file
+- 2026年05月04日晚:更新了当前的WEB UI样式并重新启动程序开发计划
+- 2026年05月11日晚:稍微更新了一下sh脚本,项目更名为SecPulse(赛博脉动)
\ No newline at end of file
diff --git a/install.sh b/install.sh
index d2bddee..b8f08d2 100644
--- a/install.sh
+++ b/install.sh
@@ -36,15 +36,27 @@ 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
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"
else
echo "⚠️ 未找到 requirements.txt,跳过依赖安装"
fi
+# ========= 创建必要的目录结构 =========
+mkdir -p "$BASE_DIR/resources/log"
+mkdir -p "$BASE_DIR/resources/history"
+mkdir -p "$BASE_DIR/resources/db"
+
# ========= 创建 PyBot 服务 =========
sudo bash -c "cat > /etc/systemd/system/PyBot.service" <>> 处理服务: $SERVICE"
@@ -14,6 +19,7 @@ for SERVICE in "${SERVICES[@]}"; do
if systemctl is-active --quiet $SERVICE; then
echo "停止服务..."
sudo systemctl stop $SERVICE
+ sleep 2 # 等待服务完全停止
else
echo "服务未运行"
fi
@@ -35,12 +41,18 @@ for SERVICE in "${SERVICES[@]}"; do
echo "未找到服务文件"
fi
- # 4. 杀残留进程(保险)
+ # 4. 杀残留进程(更精确的匹配)
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
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
echo "无残留进程"
fi
@@ -53,21 +65,54 @@ echo "重新加载 systemd..."
sudo systemctl daemon-reload
sudo systemctl daemon-reexec
-# 6. 可选清理日志
-read -p "是否清理 PyBot 日志?(y/n): " CLEAN_LOG
-if [ "$CLEAN_LOG" == "y" ]; then
+# 6. 可选清理日志和数据
+echo ""
+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天)..."
- 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
echo ""
echo "=============================="
echo "卸载完成 ✅"
echo "=============================="
+echo ""
+echo "📝 提示:"
+echo " - 配置文件保留在 config/ 目录"
+echo " - 如需完全删除项目,请手动删除整个项目文件夹"
+echo " - Python 依赖包未卸载,如需要可运行: pip uninstall -r requirements.txt"
+echo ""
-# 7. 验证
+# 8. 验证
for SERVICE in "${SERVICES[@]}"; do
- echo ""
echo "验证服务: $SERVICE"
- systemctl status $SERVICE 2>&1 | grep "could not be found" && echo "✔ 已彻底删除" || echo "⚠ 可能仍存在"
-done
\ No newline at end of file
+ if systemctl status $SERVICE 2>&1 | grep -q "could not be found"; then
+ echo " ✔ 服务已彻底删除"
+ else
+ echo " ⚠ 服务可能仍存在,请检查"
+ fi
+done
+
+echo ""
+echo "感谢使用 PyBot!👋"
\ No newline at end of file
diff --git a/开发计划.md b/开发计划.md
index 6e14fa0..5aa71f8 100644
--- a/开发计划.md
+++ b/开发计划.md
@@ -1,4 +1,4 @@
-## PyBot RSS订阅机器人未来更新计划:
+## SecPulse RSS订阅机器人未来更新计划:
#### 新功能计划
1. Web界面全面转向PHP,并将于未来与综合导航频道(Infosec Navigator)合并
2. 数据库将由sqlite转型为MySQL
@@ -10,5 +10,5 @@
#### 旧功能更新
1. 优化通用RSS订阅功能
-2. 优化PyBot程序运行中可能产生的问题(当前已知:Baidu源会导致程序异常中断)
+2. 优化SecPulse程序运行中可能产生的问题(当前已知:Baidu源会导致程序异常中断)
3. 优化Linux服务注册脚本