小调整
This commit is contained in:
parent
29819b8dbc
commit
fbf2c60e59
47
README.md
47
README.md
@ -1,4 +1,17 @@
|
|||||||
## 持续更新中 <br>
|
# 🛡️ SecPulse - 赛博脉动
|
||||||
|
|
||||||
|
> 面向网络安全领域的智能资讯聚合与推送系统
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
|
||||||
|
[](https://www.python.org/)
|
||||||
|
[](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>
|
||||||
|
您也可以通过QQ(2857911564)或者发送邮件(admin@masonliu.com)给我反馈问题。<br>
|
||||||
|
|
||||||
|
### 🙏 致谢 <br>
|
||||||
|
RSS订阅链接来源:[Chinese-Security-RSS](https://github.com/zhengjim/Chinese-Security-RSS) <br>
|
||||||
|
感谢所有为开源社区做出贡献的开发者 <br>
|
||||||
@ -52,3 +52,4 @@
|
|||||||
- 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(赛博脉动)
|
||||||
14
install.sh
14
install.sh
@ -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]
|
||||||
|
|||||||
65
uninstall.sh
65
uninstall.sh
@ -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
|
||||||
|
echo " ✔ 服务已彻底删除"
|
||||||
|
else
|
||||||
|
echo " ⚠ 服务可能仍存在,请检查"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "感谢使用 PyBot!👋"
|
||||||
4
开发计划.md
4
开发计划.md
@ -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服务注册脚本
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user