# 定时任务配置中心

> 📍 所有定时任务配置和管理都从这里开始

---

## 📋 当前任务列表

| 任务 | 描述 | 执行时间 | 状态 |
|------|------|----------|------|
| 天气预报 | 推送崇州市白头镇天气到企业微信 | 每天 08:00 | ✅ 已启用 |

---

## 🛠️ 管理命令

使用管理脚本（推荐）：
```bash
cd /home/ubuntu/.openclaw/workspace/scripts

# 查看状态
./manage-tasks.sh status

# 手动测试（立即推送一次）
./manage-tasks.sh run

# 编辑脚本（修改 Webhook、地点等）
./manage-tasks.sh edit

# 启动/停止定时任务
./manage-tasks.sh start
./manage-tasks.sh stop

# 修改配置后重载
./manage-tasks.sh reload
```

---

## 📁 文件位置

| 文件 | 路径 | 说明 |
|------|------|------|
| 天气脚本 | `scripts/weather-daily.sh` | 获取天气并推送 |
| 管理脚本 | `scripts/manage-tasks.sh` | 统一管理命令 |
| Service | `~/.config/systemd/user/daily-weather.service` | systemd 服务配置 |
| Timer | `~/.config/systemd/user/daily-weather.timer` | 定时触发器 |
| 日志 | `logs/weather-cron.log` | 执行日志 |

---

## ⚙️ 常见配置

### 修改推送时间

编辑 Timer 文件：
```bash
nano ~/.config/systemd/user/daily-weather.timer
```

修改 `OnCalendar` 行：
```ini
# 每天早上 7:30
OnCalendar=*-*-* 07:30:00

# 每天晚上 20:00
OnCalendar=*-*-* 20:00:00

# 每周一早上 9:00
OnCalendar=Mon *-*-* 09:00:00
```

保存后重载：
```bash
./manage-tasks.sh reload
```

### 修改推送地点

编辑天气脚本：
```bash
./manage-tasks.sh edit
```

修改经纬度坐标：
```bash
LAT="30.6"    # 纬度
LON="103.6"   # 经度
```

地点坐标查询：https://www.latlong.net/

### 修改企业微信 Webhook

编辑天气脚本，找到 `WEBHOOK_URL` 行：
```bash
WEBHOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx"
```

---

## 🧪 测试

```bash
# 立即推送一次（测试配置是否正确）
./manage-tasks.sh run

# 查看最近日志
tail -20 logs/weather-cron.log

# 查看 systemd 日志
journalctl --user -u daily-weather.service -n 20
```

---

## 🔧 故障排查

**问题：定时任务不执行**
```bash
# 检查服务状态
systemctl --user status daily-weather.timer

# 查看日志
journalctl --user -u daily-weather.service -n 50

# 手动运行测试
./manage-tasks.sh run
```

**问题：推送失败**
1. 检查 Webhook URL 是否正确
2. 检查网络连接
3. 查看日志中的错误信息

**问题：修改配置后不生效**
```bash
# 一定要重载配置
./manage-tasks.sh reload
```

---

## 📚 systemd Timer 基础

| OnCalendar 格式 | 说明 |
|----------------|------|
| `*-*-* 08:00:00` | 每天 8:00 |
| `*-*-* 08:00:00` | 每天 8:00（同上） |
| `Mon,Fri *-*-* 09:00:00` | 每周一、五 9:00 |
| `*-*-01 00:00:00` | 每月 1 号 0:00 |
| `hourly` | 每小时 |
| `daily` | 每天 |
| `weekly` | 每周 |
| `monthly` | 每月 |

完整文档：https://www.freedesktop.org/software/systemd/man/systemd.time.html

---

🦐 皮皮虾维护 · 有问题随时找我
