docs: 添加2号3号服务器运维手册
This commit is contained in:
parent
b0bb3372fa
commit
52ece4f412
|
|
@ -0,0 +1,250 @@
|
|||
# 一尘数据系统 - 服务器运维手册
|
||||
|
||||
> 适用服务器:2号 (101.37.160.219)、3号 (42.121.116.25)
|
||||
> 统一密码:`Coolbot123`(2号也用此密码登录)
|
||||
|
||||
---
|
||||
|
||||
## 一、服务器概览
|
||||
|
||||
| 服务器 | IP | 用途 | 爬虫 cron |
|
||||
|--------|-----|------|-----------|
|
||||
| 2号 | 101.37.160.219 | 爬虫 + API | 每 15 分钟 |
|
||||
| 3号 | 42.121.116.25 | 爬虫 + API | 每 25 分钟 |
|
||||
|
||||
---
|
||||
|
||||
## 二、下载更新版本
|
||||
|
||||
### 方式 A:通过 Git 拉取(推荐)
|
||||
|
||||
```bash
|
||||
cd /root/coolbot-data
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
> 注意:可能需要先设置 Git 凭据
|
||||
> ```bash
|
||||
> git config --global credential.helper store
|
||||
> # 首次需要输入一次用户名密码
|
||||
> # 用户名: caibotmi
|
||||
> # 密码: Caibotmi123
|
||||
> ```
|
||||
|
||||
### 方式 B:手动上传
|
||||
|
||||
如果 Git 有问题,可以让机器人(我)从 1 号服务器打包文件,通过中间服务器转发。
|
||||
|
||||
---
|
||||
|
||||
## 三、部署启动服务
|
||||
|
||||
### 3.1 安装 Python 依赖
|
||||
|
||||
```bash
|
||||
cd /root/coolbot-data
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt -q
|
||||
```
|
||||
|
||||
### 3.2 重启爬虫服务
|
||||
|
||||
```bash
|
||||
# 重启 cron(让新代码生效)
|
||||
crontab /root/coolbot-data/scripts/root.cron
|
||||
|
||||
# 或手动重启 crond
|
||||
systemctl restart crond
|
||||
```
|
||||
|
||||
### 3.3 重启 API 服务
|
||||
|
||||
```bash
|
||||
# 查看 API 是否在运行
|
||||
ps aux | grep uvicorn | grep -v grep
|
||||
|
||||
# 如果在运行,kill 掉
|
||||
pkill -f uvicorn
|
||||
|
||||
# 重新启动(后台运行)
|
||||
cd /root/coolbot-data
|
||||
source venv/bin/activate
|
||||
nohup python3 -m uvicorn api.main:app --host 0.0.0.0 --port 8080 > /root/coolbot-data/logs/api.log 2>&1 &
|
||||
echo "API 已重启,PID: $!"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、验证服务
|
||||
|
||||
### 4.1 验证爬虫日志
|
||||
|
||||
```bash
|
||||
# 查看最近爬虫执行记录
|
||||
tail -20 /root/coolbot-data/logs/cron_s2.log # 2号
|
||||
tail -20 /root/coolbot-data/logs/cron_s3.log # 3号
|
||||
```
|
||||
|
||||
**正常的日志格式:**
|
||||
```
|
||||
开始全量采集第1-2页 (今天: 2026/4/7)
|
||||
扫描第 1 页...
|
||||
该页共 391 条帖子
|
||||
[保存] 36193766 - ,,,13100元求购... (今日2026/4/7中已存2条)
|
||||
===== 采集完成 =====
|
||||
总计检查: 781 条
|
||||
成功保存: 23 条
|
||||
```
|
||||
|
||||
**出现以下情况请处理:**
|
||||
- `保存失败: not all arguments converted` → 代码未更新,需重新拉取
|
||||
- `保存失败: connection` → 数据库连接问题
|
||||
- 一直是 0 条 → 检查网络或目标网站
|
||||
|
||||
### 4.2 验证 API 服务
|
||||
|
||||
```bash
|
||||
# 测试 API 是否响应
|
||||
curl -s http://localhost:8080/health | python3 -m json.tool
|
||||
```
|
||||
|
||||
**正常响应:**
|
||||
```json
|
||||
{"status": "ok", "message": "CoolBotDataSys API is running", "version": "1.0.0"}
|
||||
```
|
||||
|
||||
### 4.3 验证数据库新帖
|
||||
|
||||
```bash
|
||||
python3 -c "
|
||||
import psycopg2
|
||||
conn = psycopg2.connect(host='pgm-bp1t1008h019ez6c.pg.rds.aliyuncs.com', port=5432, database='coolbot_data', user='coolbot', password='Coolbot123')
|
||||
cur = conn.cursor()
|
||||
cur.execute('SELECT COUNT(*), MAX(crawled_at) FROM yichens_posts WHERE DATE(crawled_at) = CURRENT_DATE')
|
||||
r = cur.fetchone()
|
||||
print(f'今日帖子: {r[0]}条 | 最后采集: {r[1]}')
|
||||
conn.close()
|
||||
"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、定期检查
|
||||
|
||||
### 5.1 每日检查(建议)
|
||||
|
||||
```bash
|
||||
# 1. 检查爬虫是否在运行
|
||||
ps aux | grep crawl_today | grep -v grep
|
||||
|
||||
# 2. 检查 cron 是否生效
|
||||
crontab -l | grep crawl
|
||||
|
||||
# 3. 检查今日数据量(应该 > 0)
|
||||
python3 -c "import psycopg2; conn = psycopg2.connect(host='pgm-bp1t1008h019ez6c.pg.rds.aliyuncs.com', port=5432, database='coolbot_data', user='coolbot', password='Coolbot123'); cur = conn.cursor(); cur.execute('SELECT COUNT(*) FROM yichens_posts WHERE DATE(crawled_at) = CURRENT_DATE'); print(cur.fetchone()[0], '条'); conn.close()"
|
||||
```
|
||||
|
||||
### 5.2 每周检查
|
||||
|
||||
- 检查磁盘空间:`df -h`
|
||||
- 检查日志文件大小:`ls -lh /root/coolbot-data/logs/`
|
||||
- 清理旧日志:`find /root/coolbot-data/logs -name "*.log" -mtime +7 -delete`
|
||||
|
||||
---
|
||||
|
||||
## 六、问题处理
|
||||
|
||||
### 问题 1:爬虫一直报 "保存失败: not all arguments converted"
|
||||
|
||||
**原因:** 代码未更新到最新版本
|
||||
|
||||
**解决:**
|
||||
```bash
|
||||
cd /root/coolbot-data
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
### 问题 2:爬虫返回 0 条新帖
|
||||
|
||||
**排查步骤:**
|
||||
1. 检查网络:`curl -s -o /dev/null -w "%{http_code}" http://www4.pm001.net`
|
||||
2. 查看详细日志:`tail -50 /root/coolbot-data/logs/cron_s*.log`
|
||||
3. 手动跑一次爬虫看输出
|
||||
|
||||
### 问题 3:API 服务无响应
|
||||
|
||||
**解决:**
|
||||
```bash
|
||||
# 检查端口是否监听
|
||||
netstat -tlnp | grep 8080
|
||||
|
||||
# 重启 API
|
||||
cd /root/coolbot-data
|
||||
pkill -f uvicorn
|
||||
source venv/bin/activate
|
||||
nohup python3 -m uvicorn api.main:app --host 0.0.0.0 --port 8080 > logs/api.log 2>&1 &
|
||||
```
|
||||
|
||||
### 问题 4:数据库连接失败
|
||||
|
||||
**原因:** 阿里云 RDS 网络不通 或 密码错误
|
||||
|
||||
**排查:**
|
||||
```bash
|
||||
# 测试数据库连接
|
||||
psql "postgresql://coolbot:Coolbot123@pgm-bp1t1008h019ez6c.pg.rds.aliyuncs.com:5432/coolbot_data" -c "SELECT 1"
|
||||
```
|
||||
|
||||
### 问题 5:SSH 连接被拒
|
||||
|
||||
**原因:** 服务器 SSH 策略或网络问题
|
||||
|
||||
**解决:** 等待几分钟后重试,或联系网络管理员
|
||||
|
||||
---
|
||||
|
||||
## 七、快速命令汇总
|
||||
|
||||
```bash
|
||||
# === 查看状态 ===
|
||||
git -C /root/coolbot-data log --oneline -1 # 最新版本
|
||||
ps aux | grep crawl_today | grep -v grep # 爬虫进程
|
||||
ps aux | grep uvicorn | grep -v grep # API 进程
|
||||
tail -5 /root/coolbot-data/logs/cron_s*.log # 最新日志
|
||||
|
||||
# === 更新代码 ===
|
||||
cd /root/coolbot-data && git pull origin main
|
||||
|
||||
# === 重启爬虫 ===
|
||||
pkill -f crawl_today
|
||||
# 等待 cron 自动触发,或手动运行:
|
||||
# cd /root/coolbot-data && source venv/bin/activate && python3 scripts/crawl_cron_s2.sh
|
||||
|
||||
# === 重启 API ===
|
||||
cd /root/coolbot-data && pkill -f uvicorn && source venv/bin/activate && nohup python3 -m uvicorn api.main:app --host 0.0.0.0 --port 8080 > logs/api.log 2>&1 &
|
||||
|
||||
# === 验证服务 ===
|
||||
curl -s http://localhost:8080/health # API 健康检查
|
||||
python3 -c "import psycopg2; c=psycopg2.connect(host='pgm-bp1t1008h019ez6c.pg.rds.aliyuncs.com',port=5432,database='coolbot_data',user='coolbot',password='Coolbot123'); print(c.cursor().execute('SELECT 1'),'OK')" # DB 连接
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 八、重要文件路径
|
||||
|
||||
| 路径 | 说明 |
|
||||
|------|------|
|
||||
| `/root/coolbot-data/crawlers/crawl_today.py` | 爬虫主程序 |
|
||||
| `/root/coolbot-data/scripts/crawl_cron_s2.sh` | 2号 cron 脚本 |
|
||||
| `/root/coolbot-data/scripts/crawl_cron_s3.sh` | 3号 cron 脚本 |
|
||||
| `/root/coolbot-data/logs/cron_s2.log` | 2号爬虫日志 |
|
||||
| `/root/coolbot-data/logs/cron_s3.log` | 3号爬虫日志 |
|
||||
| `/root/coolbot-data/api/main.py` | API 主程序 |
|
||||
| `/root/coolbot-data/logs/api.log` | API 日志 |
|
||||
| `/root/coolbot-data/.env` | 环境变量(包含数据库密码) |
|
||||
|
||||
---
|
||||
|
||||
## 九、联系方式
|
||||
|
||||
如遇到无法解决的问题,请联系:**菜鸟Mi(caibotmini)**
|
||||
Loading…
Reference in New Issue