Hydro系统(OJ)维护小指南
快速操作索引
| 操作类型 | 常用命令 |
|---|---|
| 进程管理 | pm2 ls pm2 restart <name> pm2 log hydrooj |
| 系统更新 | yarn global upgrade hydrooj && pm2 restart hydrooj |
| 快速备份 | hydrooj backup |
| 缓存清理 | yarn cache clean && nix-collect-garbage |
| 版本查询 | cd $(yarn global dir) && yarn list --pattern hydrooj |
日常维护指南
一、进程管理(PM2)
核心进程清单
| 进程名称 | 功能描述 | 标准端口 |
|---|---|---|
| hydrooj | 系统主服务 | 8888 |
| hydro-sandbox | 评测沙箱 | 5050 |
| mongodb | 数据库服务 | 27017 |
| caddy | 反向代理服务 | 80/443 |
PM2 操作速查表
1 | # 查看进程状态 |
⚠️ 重要提示
- 禁止随意更新 PM2 本体
- 修改进程配置后必须执行
pm2 save - 出现异常时优先执行
pm2 flush清理日志缓存
二、系统更新流程
1 | # 1. 交互式更新组件 |
❗ 更新注意事项
- 更新前必须执行
hydrooj backup - 避免在生产高峰期操作
- 关注 官方更新日志
三、备份与恢复
自动备份方案
1 | # 每日3点自动备份(需配置crontab) |
应急恢复步骤
1 | 1. 停止服务: pm2 stop all |
📁 备份文件规范
- 保留最近7天备份
- 异地存储至少1份副本
- 定期进行恢复测试
月度维护建议
例行检查清单
备份验证
- 检查备份文件完整性(解压验证)
- 测试跨服务器恢复流程
系统健康检查
1
2
3
4
5
6
7
8# 检查服务运行时长
pm2 ls --sort=time
# 数据库状态检测
echo "db.stats()" | hydrooj db
# 存储空间监控
df -h /data安全审计
- 检查
/root/.hydro/config.json权限 - 更新系统安全补丁
- 审查用户权限配置
- 检查
性能优化
- 分析
pm2 logs --timestamp中的慢查询 - 清理过期测试数据(超过180天未访问)
- 评估是否需要扩容
- 分析
常见问题速查
服务类异常
Q1:服务无法访问
✅ 检查步骤:
netstat -tulnp | grep '8888\|443'验证端口监听pm2 log caddy查看代理日志- 检查安全组/防火墙设置
Q2:评测系统异常
1 | # 沙箱状态诊断 |
配置类问题
修改备案信息
1 | hydrooj cli system set footer_extra_html '<备案信息>' |
调整提交限制
1 | # 示例:设置单题最大评测时间 |
紧急恢复预案
1 | st=>start: 服务异常 |
维护支持
📞 官方技术支持群:1085853538
🔗 官方文档中心:https://docs.hydro.ac/docs/Hydro
附:所有关键操作必须留存操作日志,格式示例:
[2023-08-01] 执行系统更新 v3.22.1 → v3.23.0 操作人:admin
- 标题: Hydro系统(OJ)维护小指南
- 作者: 星隐
- 创建于 : 2026-01-07 20:10:43
- 更新于 : 2026-01-19 01:58:27
- 链接: https://www.starin.top/post/6f2cfc6b5bf8/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。