这部分区分实际做过的监控脚本练习和赛前的部署题推测。Docker 与数据库题型属于当时的备考推演,不代表最终赛题。
本文由个人备赛旧笔记整理,整理日期为 2026-11-03。命令、输出和测试记录属于当时的实验环境;本文未重新搭建整套环境验证。
阅读前先确认
监控必须在循环内重新采样,数量应按题意精确比较。数据库用户权限按实际业务范围授予;Compose 示例需要匹配生成的节点目录、证书和网络配置。
监控练习:每次循环重新统计
原来的脚本把 command 放在 while 之前,后续永远比较第一次得到的结果;而且“小于 4”无法发现多启动节点的情况。下面按“恰好 4 个进程”改写。
1 2 3 4 5 6 7 8 9 10
| #!/usr/bin/env bash while true; do count=$(pgrep -xc fisco-bcos || true) if [ "$count" -eq 4 ]; then echo "正常:4 个 fisco-bcos 进程" else echo "异常:当前 $count 个进程,期望 4 个" fi sleep 1 done
|
端口题要先明确统计口径。下面统计本机 fisco-bcos 进程的 TCP 监听端口,去重后比较 12;需要足够权限才能看到进程归属。容器、不同网络命名空间和仅配置两个端口的版本不适用这一固定目标。
1 2 3 4 5 6 7 8 9 10
| #!/usr/bin/env bash while true; do count=$(ss -H -lntp | awk '/"fisco-bcos"/ { n=split($4,a,":"); print a[n] }' | sort -u | wc -l) if [ "$count" -eq 12 ]; then echo "正常:12 个 TCP 监听端口" else echo "异常:当前 $count 个端口,期望 12 个" fi sleep 3 done
|
这两个脚本是整理时的静态修订,没有连接真实节点执行验证。实际练习应测试少一个节点、多一个节点以及端口变更后能否报警。
赛前推测的范围
下面数据库用户与 Docker Compose 是赛前推演。原目录中“抓包取 token”的文件只有标题,没有可整理的步骤,因此没有扩写成教程。
题目推测-需要自行创建新的数据库用户
国赛使用了MYSQL数据
推测其数据库部署的过程中,有创建用户并使用这个用户的题目内容
命令:
1 2 3 4 5 6 7 8
| CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
CREATE USER 'newuser'@'192.168.1.%' IDENTIFIED BY 'password';
|
理解:
MYSQL 新创建的用户需要调整等级,有一套完整的用户权限管理方案。
MYSQL 对数据库的用户拥有内容高度定制的方法。
权限授予
1 2 3 4 5 6 7 8 9 10 11
| GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'localhost';
GRANT SELECT, INSERT, UPDATE ON mydb.mytable TO 'username'@'localhost';
GRANT EXECUTE ON PROCEDURE mydb.myprocedure TO 'username'@'localhost';
|
题目推测-需要手动编写docker集群化运维脚本
手动编写 docker-compose.yml
题目提到了使用docker 部署 Fisco节点
我推测内容如下
拉好了 Fisco 节点的对象
但是并没有给部署脚本
我们只能自行部署
部署方式
方式1
docker run -it -p xxxx:xxxx -E 变量=? .... fiscoorg/fiscobcos:v3.6.0 /bin/bash app/start.sh
方式2
docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| version: '3.8'
services: node0: image: fiscoorg/fiscobcos:v3.6.0 container_name: fisco-node0 hostname: node0 volumes: - ./nodes/127.0.0.1/node0/conf:/fisco-bcos/conf - ./nodes/127.0.0.1/node0/data:/fisco-bcos/data - ./nodes/127.0.0.1/node0/log:/fisco-bcos/log ports: - "30300:30300" - "20200:20200" networks: fisco-network: ipv4_address: 172.16.0.10 restart: unless-stopped command: ["-c", "/fisco-bcos/conf/config.ini"]
node1: image: fiscoorg/fiscobcos:v3.6.0 container_name: fisco-node1 hostname: node1 volumes: - ./nodes/127.0.0.1/node1/conf:/fisco-bcos/conf - ./nodes/127.0.0.1/node1/data:/fisco-bcos/data - ./nodes/127.0.0.1/node1/log:/fisco-bcos/log ports: - "30301:30301" - "20201:20201" networks: fisco-network: ipv4_address: 172.16.0.11 restart: unless-stopped command: ["-c", "/fisco-bcos/conf/config.ini"] depends_on: - node0
node2: image: fiscoorg/fiscobcos:v3.6.0 container_name: fisco-node2 hostname: node2 volumes: - ./nodes/127.0.0.1/node2/conf:/fisco-bcos/conf - ./nodes/127.0.0.1/node2/data:/fisco-bcos/data - ./nodes/127.0.0.1/node2/log:/fisco-bcos/log ports: - "30302:30302" - "20202:20202" networks: fisco-network: ipv4_address: 172.16.0.12 restart: unless-stopped command: ["-c", "/fisco-bcos/conf/config.ini"] depends_on: - node0 - node1
node3: image: fiscoorg/fiscobcos:v3.6.0 container_name: fisco-node3 hostname: node3 volumes: - ./nodes/127.0.0.1/node3/conf:/fisco-bcos/conf - ./nodes/127.0.0.1/node3/data:/fisco-bcos/data - ./nodes/127.0.0.1/node3/log:/fisco-bcos/log ports: - "30303:30303" - "20203:20203" networks: fisco-network: ipv4_address: 172.16.0.13 restart: unless-stopped command: ["-c", "/fisco-bcos/conf/config.ini"] depends_on: - node0 - node1 - node2
networks: fisco-network: driver: bridge ipam: config: - subnet: 172.16.0.0/24
|
复现时的自查
- 记录自己实际使用的版本、配置和缺失依赖。
- 对照本篇关键步骤,保存命令或调用结果,并解释结果代表什么。
- 对失败或与原记录不一致的情况保留错误信息,不把历史输出当成自己的验证结果。
返回系列导读 · 上一篇