linux geth 不能同步公链数据,以太坊geth客户端网络同步失败重启脚本和挂掉解决方案...

问题说明

以太坊的geth客户端在运行的过程中经常会出现同步失败或假死的状况。那么针对此状况可编写定时任务脚本来监控geth的日志。并通过日志的输出来确定是否重启geth客户端。

实例

以下根据geth日志中的“Synchronisation failed”日志来进行重启。其他情况的日志可依次进行类推,拓展。

用supervisorctl管理工具,脚本名称为check_eth_node.sh,脚本内容如下:

#!/bin/sh

# 获取最后一行日志

tail_result=`tail -n 1 {日志文件路径}`

FAILPATTERN="Synchronisation failed"

if [ $? -ne 0 ]

then

echo "tail command error!" $?

else

if [[ $tail_result == *$FAILPATTERN* ]]

then

echo "Get 'Synchronisation failed' logs , to restart geth now!"

/usr/local/bin/supervisorctl restart geth

if [ $? -ne 0 ]

then

echo "restart error." $?

fi

fi

fi

echo "excute time:" `date`

通过linux下的定时器模块crontab来实现定时功能:

0 0-23 * * * check_eth_node.sh >> cronlog.log

这样就可以每隔一段时间来进行geth节点的监控了。

程序监控

另外一种监控形式,就是用其他语言比如java写一个定时任务,通过定时任务去调用一个简单的api,比如调用查询当前区块的高度的api,这样如果调用失败,说明geth节点已经挂掉。

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值