Appearance
03 · 监控与脚本
服务上线不是终点,要知道它运行得好不好。监控和脚本是让你在问题变大之前发现问题的工具。
分析日志
把日志贴给 Claude,它能分析出你看不懂的内容:
分析以下 Nginx 访问日志,告诉我:
- 最多的 4xx 错误是什么,有哪些 URL
- 是否有异常高频的 IP(可能是爬虫或攻击)
- 响应时间分布,p95 大概是多少
[贴出 100-200 行日志]生成日志分析脚本
帮我写一个 bash 脚本 scripts/analyze-logs.sh:
读取 /var/log/nginx/access.log,输出:
- 每小时请求量(最近 24 小时)
- 状态码分布(200/3xx/4xx/5xx 各占比)
- 响应时间超过 2 秒的请求列表(TOP 20)
- 最活跃的 10 个 IP
输出格式要清晰,用分隔线区分各部分。设置告警脚本
帮我写一个 shell 脚本 scripts/health-check.sh:
每 5 分钟检查一次 https://my-app.com/api/health:
- 如果返回非 200,或响应时间 > 3 秒,发送告警到企业微信 Webhook
- 连续 3 次失败才发告警,避免误报
- 发送内容包括:当前时间、状态码、响应时间、最近 5 条错误日志
Webhook URL 从环境变量 WECOM_WEBHOOK 读取。自动化部署脚本
帮我写一个部署脚本 scripts/deploy.sh:
1. 从 Git 拉取 main 分支最新代码
2. pnpm install --frozen-lockfile
3. pnpm build
4. 用 pm2 重启应用(pm2 reload ecosystem.config.js)
5. 等待 30 秒,检查 /api/health 返回 200
6. 失败则自动回滚到上一个版本,并发送告警
脚本要有完整的错误处理(set -e),每个步骤打印开始时间。数据库备份脚本
帮我写一个 PostgreSQL 自动备份脚本 scripts/backup-db.sh:
- 用 pg_dump 导出数据库
- 用 gzip 压缩,文件名格式:backup_YYYYMMDD_HHMMSS.sql.gz
- 上传到 AWS S3(Bucket 名从 $S3_BUCKET 环境变量读)
- 本地只保留最近 7 天的备份
- 执行完发送成功/失败通知到企业微信
用 crontab 每天凌晨 3 点执行,同时提供 crontab 配置。让 Claude 看服务器状态
运行以下命令,根据输出分析服务器健康状况并给出建议:
df -h # 磁盘
free -m # 内存
top -bn1 # CPU
netstat -tlnp # 端口监听直接让 Claude Code 执行命令(它会用 bash 工具),然后分析结果。
