目录
搭建区块链网络
这里以单机构单群组四节点的区块链网络为例
bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -e bin/fisco-bcos
启动区块链网络
bash nodes/127.0.0.1/start_all.sh
编写 Shell 脚本
一
编写脚本1,每隔1秒检查一次区块链节点进程数量,若为4则打印正常信息,否则打印错误信息。
#/bin/bash
while true;
do
fiscoNumber=`ps -ef|grep -v grep|grep fisco-bcos|wc -l`
if [ $fiscoNumber -eq 4 ]; then
echo "ok:fisco bcos live process is 4"
else
echo "error: fisco bcos live process is $fiscoNumber, not equal to 4"
fi
sleep 1
done
运行结果
二
编写脚本2,每隔3秒检查一次区块链节点进程占用的端口数量,若为12则打印正常信息,否则打印错误信息
#/bin/bash
while true;
do
fiscoNumber=`netstat -nltp|grep fisco-bcos|wc -l`
if [ $fiscoNumber -eq 12 ]; then
echo "ok:fisco bcos listening on 12 ports"
else
echo "error: fisco bcos listening ports is $fiscoNumber, not equal to 12"
fi
sleep 3
done
运行结果
Shell 命令解释
#!/bin/bash
- 这是一个 “shebang” 行,告诉操作系统使用 Bash 解释器来执行这个脚本。
while true; do ... done
- 这是一个
while
循环,条件是true
,这意味着这个循环会无限次执行下去。 do ... done
之间的代码会被反复执行。
fiscoNumber=\
ps -ef | grep -v grep | grep fisco-bcos | wc -l``
- 这行代码是脚本的核心,它用来获取
fisco-bcos
进程的数量。 - 反引号 `...`: 这是一个命令替换,它会先执行反引号内的命令,然后将命令的输出结果赋值给变量
fiscoNumber
。 ps -ef
: 这个命令会列出系统上所有正在运行的进程。grep -v grep
: 这个命令会过滤掉ps -ef
输出结果中包含 “grep” 的行 (也就是过滤掉grep
自身进程)。-v
参数表示反向匹配。grep fisco-bcos
: 这个命令会进一步过滤,只保留包含 “fisco-bcos” 的行(区分大小写)。wc -l
: 这个命令会统计过滤后输出的行数,也就是fisco-bcos
进程的数量。
if [ $fiscoNumber -eq 4 ]; then ... else ... fi
- 这是一个
if
条件语句,用来检查fiscoNumber
的值。 [ $fiscoNumber -eq 4 ]
: 这是条件表达式。[
和]
表示条件测试的开始和结束。-eq
是一个比较运算符,用来检查两个数字是否相等。then
: 如果条件为真 (fiscoNumber
等于 4),则执行then
后面的代码。echo "ok:fisco bcos live process is 4"
: 输出信息 "ok:fisco bcos live process is 4",表示fisco-bcos
进程的数量是 4 个,符合预期。else
: 如果条件为假 (fiscoNumber
不等于 4),则执行else
后面的代码。echo "error: fisco bcos live process is $fiscoNumber, not equal to 4"
: 输出错误信息,显示当前的fisco-bcos
进程数量不等于 4。fi
: 表示if
语句的结束。
sleep 1
:
- 这个命令会使脚本暂停 1 秒钟,然后再继续执行循环。