Stanley-Git-Hub/ubuntu-watchdog
GitHub: Stanley-Git-Hub/ubuntu-watchdog
Ubuntu Watchdog 是一套基于 systemd timer 的 Ubuntu 健康与安全监控套件,整合 ClamAV、rkhunter、AIDE、SMART、Suricata 等工具并提供电源感知调度与 HTML 报告。
Stars: 0 | Forks: 0
# 🐕 Ubuntu Watchdog v6.0
为 Ubuntu 提供的综合健康与安全监控 — **同一项目
在笔记本电脑和 PC 上均可保持原样运行**。一切都会自动检测:
磁盘(NVMe 和 SATA)、用户、路径、机器类型(有电池 → 笔记本电脑)。

## 安装说明(新机器 = PC 和笔记本电脑)
```
# 1) 将整个文件夹 ~/projekt (watchdog + *-gui) 复制到新机器
# 2) 安装依赖项
sudo apt install clamav clamav-daemon rkhunter aide smartmontools \
fail2ban suricata jq python3-flask curl
# 3) 一个命令即可部署所有内容 (timers, udev, limits, GUI 控制台)
sudo ~/projekt/watchdog/install.sh
```
安装脚本是**幂等的** —— 可以重复运行(例如在修改
脚本之后)。同时它会从旧版本进行迁移:从 root 的 crontab 和 `/etc/cron.daily/daily-maintenance` 中移除旧行(已被 timers 取代)。
## 时间表(systemd timers,全部设为 `Persistent=true`)
如果机器在特定时间未开机,错过的任务将在开机后**自动补齐** —— 因此当机器在指定时间未运行时,不会再出现任务被“静默”跳过的情况(这是 cron 之前的问题)。
| 时间 | Timer | 任务内容 |
|--------------|-------------------------|--------------------------------------------|
| 每天 19:00 | `watchdog-daily` | 维护:软件包、/tmp、日志轮转(周日:+ apt clean) |
| 每天 19:15 | `watchdog-main-report` | 主 HTML 报告(root) |
| 每天 19:30 | `watchdog-report` | 日常 cron 报告(用户) |
| 周日 12:00 | `watchdog-clamav` | 病毒扫描(ClamAV) |
| 周日 13:00 | `watchdog-rkhunter` | rootkit 检查 |
| 周日 13:30 | `watchdog-smart` | **所有**物理磁盘的 SMART 健康状态 |
| 周日 14:00 | `watchdog-aide` | 系统文件完整性校验 |
| 每 10 分钟 | `watchdog-deferred` | 检查电源状态 + 执行被推迟的扫描 |
## 基于电源状态的行为(笔记本电脑)
配置文件:`etc/watchdog.conf`
* 在**电池模式**下,繁重的扫描任务(ClamAV、rkhunter、AIDE)会被推迟,并在连接充电器后自动执行(udev 规则 + deferred timer)。
* 当电池电量低于 `SURICATA_BATTERY_MIN` 阈值(默认为 40%)时,**Suricata IDS** 将停止运行;并在充满电或重新连接电源后再次启动。
* 在**台式机**(无电池)上,这些都不适用 —— 一切都会正常运行。
## 报告与 GUI
* 报告:`reports/watchdog-YYYY-MM-DD.html`(主报告)和 `report-YYYY-MM-DD.html`
(每日报告) —— 采用统一的深色主题设计,页眉显示主机名、机器类型和电池状态(在不同机器上很容易区分报告)。
* GUI 控制台(Flask,仅限 127.0.0.1;用户服务在登录后启动):
* `:5000` Suricata 威胁控制台 + Fail2ban
* `:5001` ClamAV 扫描控制台
* `:5002` 计划任务
* `:5003` Rkhunter 控制台
* `:5004` 更新控制台
* 主报告顶部的工具栏中提供了所有控制台的链接。
## 结构
```
watchdog/
├── install.sh ← jednotná instalace na aktuální stroj
├── etc/watchdog.conf ← konfigurace (napájení, SCAN_DIRS, DISK_DEVICE…)
├── bin/
│ ├── common-functions.sh ← sdílené funkce + auto-detekce (disk, uživatel…)
│ ├── ubuntu-watchdog.sh ← hlavní HTML report
│ ├── cron-report.sh ← denní report
│ ├── daily-maintenance.sh ← denní údržba
│ ├── clamav-scan.sh / rkhunter-check.sh / aide-check.sh / smart-check.sh
│ ├── power-handler.sh ← odložené skeny + Suricata dle napájení
│ └── suricata-iface.sh ← af-packet rozhraní podle aktivní sítě
└── reports/
```
子安装脚本 `install-resource-limits.sh`(由 `install.sh` 调用)
和 `install-suricata-iface.sh`(独立部署 iface-sync)被保留;
其他所有内容均由 `install.sh` 自行生成。生成的报告和早期
被替换的文件(`legacy/`)不纳入版本控制 —— 详见 `.gitignore`。
## 诊断
```
systemctl list-timers 'watchdog-*' # rozvrh a poslední běhy
systemd-cgtop # limity prostředků za běhu
cat /var/log/cron-jobs/power-handler.log # rozhodování podle napájení
ls /var/lib/watchdog/deferred/ # aktuálně odložené skeny
```
## 许可证
MIT —— 详见 [LICENSE](LICENSE)。
标签:Metaprompt, 健康监测, 应用安全, 数字取证, 系统维护, 自动化脚本, 运维监控, 逆向工具