小调整
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>
|
||||
使用python-json进行格式化,然后使用飞书webhook机器人进行发送 <br>
|
||||
./config/config.yaml 可指定发送渠道、运行方式等基础配置信息 <br>
|
||||
@ -6,15 +19,26 @@ RSS订阅链接来源:https://github.com/zhengjim/Chinese-Security-RSS <br>
|
||||
./config/github_config.yaml 可指定Github相关参数(支持热修改) <br>
|
||||
更新记录请查看./UpdateLOG.md
|
||||
|
||||
### 📱 推送渠道 <br>
|
||||
|
||||
目前支持以下推送渠道: <br>
|
||||
- 飞书(Feishu) <br>
|
||||
- 企业微信(WeChat Work) <br>
|
||||
#### 后续更新渠道: <br>
|
||||
- 钉钉(DingTalk) <br>
|
||||
- 蓝信(Lanxin) <br>
|
||||
#### 停更渠道: <br>
|
||||
邮件(Email,中断开发) <br>
|
||||
|
||||
### 项目特色 <br>
|
||||
- 模块化:爬虫(获取信息部分)、分析(对获取的json信息进行筛选分析存储)、推送(推送至各渠道)、网页等各模块均可单独运行。 <br>
|
||||
- 轻量化:默认使用sqlite以及其他常见的各系统自带的库,用户仅需配置python环境,不会占用过多内存。 <br>
|
||||
- 简单化:配置好config后即可一步运行,效率极高。 <br>
|
||||
|
||||
### 日志相关
|
||||
### 日志相关 <br>
|
||||
请查看./resources/log文件夹下内容 <br>
|
||||
|
||||
### 使用建议: <br>
|
||||
### 🖥️ Linux后台运行建议: <br>
|
||||
Linux系统建议下载screen于后台持续运行本脚本。 <br>
|
||||
debian/ubuntu/kali: `apt install screen` <br>
|
||||
centos: `yum install screen` <br>
|
||||
@ -23,6 +47,8 @@ centos: `yum install screen` <br>
|
||||
重新进入会话:`screen -r 会话名称` <br>
|
||||
结束对话:进入会话后输入`exit` <br>
|
||||
|
||||
当然,您也可以直接使用install脚本一键注册systemd服务(注意,请将Core.py主函数中的send_first_message()注释掉,防止反复触发首次运行效果) <br>
|
||||
|
||||
### 使用方法: <br>
|
||||
先下载支持库:`pip install -r requirements.txt` <br>
|
||||
随后便可直接运行:`python Core.py` <br>
|
||||
@ -30,7 +56,7 @@ web运行:`python ./web/app.py` <br>
|
||||
随后web网页将会在本地9801端口启动,访问即可,使用反向代理即可以域名映射到外网 <br>
|
||||
直接访问web域名即可查看历史推送,访问路径/log即可查看程序运行日志,/weblog查看flask日志 <br>
|
||||
|
||||
或者直接运行install.sh即可,目前脚本存在一定问题,正在尽力修复。
|
||||
或者直接运行install.sh即可,目前脚本存在一定问题,正在尽力修复。 <br>
|
||||
|
||||
### 配置 <br>
|
||||
首先先在飞书中创建群组,然后再创建WebHook机器人 <br>
|
||||
@ -51,8 +77,19 @@ web运行:`python ./web/app.py` <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/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_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>
|
||||
@ -51,4 +51,5 @@
|
||||
- 2025年01月24日早:修复了json文件为空时程序中断的问题并优化了报错逻辑
|
||||
- 2025年03月10日早:为程序添加了通用rss接口,可支持更多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
|
||||
|
||||
# ========= 检查 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" <<EOF
|
||||
[Unit]
|
||||
|
||||
67
uninstall.sh
67
uninstall.sh
@ -6,6 +6,11 @@ echo "=============================="
|
||||
echo "开始卸载 PyBot 系统服务"
|
||||
echo "=============================="
|
||||
|
||||
# 检查是否以 root 权限运行(部分操作需要)
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
echo "⚠️ 某些操作可能需要 sudo 权限"
|
||||
fi
|
||||
|
||||
for SERVICE in "${SERVICES[@]}"; do
|
||||
echo ""
|
||||
echo ">>> 处理服务: $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
|
||||
if systemctl status $SERVICE 2>&1 | grep -q "could not be found"; then
|
||||
echo " ✔ 服务已彻底删除"
|
||||
else
|
||||
echo " ⚠ 服务可能仍存在,请检查"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "感谢使用 PyBot!👋"
|
||||
4
开发计划.md
4
开发计划.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服务注册脚本
|
||||
|
||||
Loading…
Reference in New Issue
Block a user