CoolBotDataSys/docs/服务器运维手册.md

6.5 KiB
Raw Permalink Blame History

一尘数据系统 - 服务器运维手册

适用服务器2号 (101.37.160.219)、3号 (42.121.116.25) 统一密码:Coolbot1232号也用此密码登录


一、服务器概览

服务器 IP 用途 爬虫 cron
2号 101.37.160.219 爬虫 + API 每 15 分钟
3号 42.121.116.25 爬虫 + API 每 25 分钟

二、下载更新版本

方式 A通过 Git 拉取(推荐)

cd /root/coolbot-data
git pull origin main

注意:可能需要先设置 Git 凭据

git config --global credential.helper store
# 首次需要输入一次用户名密码
# 用户名: caibotmi
# 密码: Caibotmi123

方式 B手动上传

如果 Git 有问题,可以让机器人(我)从 1 号服务器打包文件,通过中间服务器转发。


三、部署启动服务

3.1 安装 Python 依赖

cd /root/coolbot-data
source venv/bin/activate
pip install -r requirements.txt -q

3.2 重启爬虫服务

# 重启 cron让新代码生效
crontab /root/coolbot-data/scripts/root.cron

# 或手动重启 crond
systemctl restart crond

3.3 重启 API 服务

# 查看 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 验证爬虫日志

# 查看最近爬虫执行记录
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 服务

# 测试 API 是否响应
curl -s http://localhost:8080/health | python3 -m json.tool

正常响应:

{"status": "ok", "message": "CoolBotDataSys API is running", "version": "1.0.0"}

4.3 验证数据库新帖

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 每日检查(建议)

# 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"

原因: 代码未更新到最新版本

解决:

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. 手动跑一次爬虫看输出

问题 3API 服务无响应

解决:

# 检查端口是否监听
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 网络不通 或 密码错误

排查:

# 测试数据库连接
psql "postgresql://coolbot:Coolbot123@pgm-bp1t1008h019ez6c.pg.rds.aliyuncs.com:5432/coolbot_data" -c "SELECT 1"

问题 5SSH 连接被拒

原因: 服务器 SSH 策略或网络问题

解决: 等待几分钟后重试,或联系网络管理员


七、快速命令汇总

# === 查看状态 ===
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 环境变量(包含数据库密码)

九、联系方式

如遇到无法解决的问题,请联系:菜鸟Micaibotmini