# FreshRSS 每日自动备份系统

## 📋 功能说明

每天凌晨 1 点自动备份前一天的所有文章到本地，包含：
- ✅ 文章完整内容（HTML 格式）
- ✅ 文章中的图片（可选下载）
- ✅ 文章元数据（作者、发布时间、标签等）
- ✅ 友好的 HTML 索引页面

## 📁 目录结构

```
backups/
├── 2026-03-25/           # 第一层：日期
│   ├── 技术博客/         # 第二层：订阅源名称
│   │   ├── index.html    # 该订阅源的文章列表
│   │   ├── images/       # 图片目录
│   │   ├── abc123.html   # 文章 1
│   │   └── def456.html   # 文章 2
│   ├── 新闻资讯/
│   │   └── ...
│   ├── feeds.json        # 所有订阅源的元数据
│   └── index.html        # 总索引页面
├── 2026-03-26/
└── ...
```

## ⏰ 定时任务

已配置每天凌晨 1 点自动执行：
```bash
0 1 * * * /root/.openclaw/workspace/rss-service/scripts/backup-freshrss.sh
```

## 🔧 配置项

编辑 `scripts/backup-freshrss.sh`：

```bash
FRESHRSS_URL="http://10.7.0.5:8080"     # FreshRSS 地址
FRESHRSS_USER="admin"                    # 用户名
FRESHRSS_API_PASSWORD="xxx"              # API 密码
BACKUP_BASE_DIR="/root/.../backups"      # 备份目录
KEEP_DAYS=365                            # 保留天数
```

## 📖 查看备份

### 方式一：直接访问 HTML
```bash
# 打开浏览器访问
file:///root/.openclaw/workspace/rss-service/backups/2026-03-25/index.html
```

### 方式二：使用 HTTP 服务器
```bash
cd /root/.openclaw/workspace/rss-service/backups
python3 -m http.server 8888
# 访问 http://localhost:8888/2026-03-25/
```

## 🚀 手动备份

### 备份指定日期
```bash
cd /root/.openclaw/workspace/rss-service
./scripts/backup-freshrss.sh
```

### 备份今天（带图片）
```bash
python3 scripts/backup_articles.py \
  --url http://10.7.0.5:8080 \
  --user admin \
  --api-password 3a9b87feaf309ef8d3c8dce7dde85ec5 \
  --date 2026-03-25 \
  --output-dir backups/2026-03-25 \
  --download-images
```

## 📊 备份统计

查看备份统计信息：
```bash
cat backups/2026-03-25/feeds.json | jq '.[].article_count | add'
```

## 🔍 搜索文章

使用 grep 搜索：
```bash
grep -r "关键词" backups/2026-03-25/
```

## ⚙️ 修改备份时间

编辑 crontab：
```bash
crontab -e
```

修改这行（格式：分 时 日 月 周）：
```bash
# 每天凌晨 2 点备份
0 2 * * * /root/.openclaw/workspace/rss-service/scripts/backup-freshrss.sh
```

## 🛠️ 故障排查

### 查看日志
```bash
tail -100 /root/.openclaw/workspace/rss-service/logs/backup.log
```

### 手动测试
```bash
./scripts/backup-freshrss.sh
```

### 检查依赖
```bash
pip3 list | grep -E "requests|beautifulsoup4"
```

## 📦 依赖安装

```bash
# Python 依赖
pip3 install requests beautifulsoup4 lxml

# 系统工具
apt install jq  # 用于 JSON 处理
```

## 📝 注意事项

1. **API 密码**：使用 API 密码而非登录密码
2. **图片下载**：会显著增加备份时间和空间
3. **保留策略**：默认保留 365 天，可修改 KEEP_DAYS
4. **磁盘空间**：每天约 10-50MB（含图片）

## 🎯 恢复数据

备份是标准 HTML 格式，可直接用浏览器查看，无需特殊工具。

---

**最后更新**: 2026-03-25
