快速比较不同服务器上面应用是否一致的方法
背景
高可用、高并发的场景要求必须进行多应用的负载均衡处理
此时一个很重要的问题就是 应用服务器是否一致的一个检查。
正常情况下可能需要获取md5 然后进行计算,
或者是复制到相同机器上面进行 compare的对比。
但是这种处理方式往往费时费力。 效率也慢。所以想一种快速比较的方法
简单思路
计划采用rsync的方式进行抽样对比,将不一样的文件挪到一个位置上面去。
使用rsync的远程对比分析功能。
脚本为:
rsync -rcn --out-format="%n" /myapp/server/ [email protected]:/myappmysql/server/ |grep -v "/$"|xargs -I{} rsync -R /myapp/server/./{} /myappdiff
注意要进行互信操作,如果有安全要求可以再互信之后清理掉。
本脚本按照 本地文件为蓝图, 跟远端服务器进行对比
想与本地文件不一致的部分挪到 /myappdiff 目录里面去 待查。
可以使用 find /myappdiff -iname "*.jar" |wc -l 的方式来判断是否有不同的jar包。
如果是前端, 可以选择比如 js,html 等文件进行比较
可以忽略比如 log。配置文件方面的差异。
也可以进行配置文件等的一致性检查。
关于后续
建议增加一个文件对比的功能, 在不同服务器更新完补丁之后可以快速的进行文件对比。
判断核心文件是否正常,如果不正常,应该尽快进行上报,避免因为文件不正常出现产品异常的情况。
可以将这个内容作为一个常规日常运行后检查事项, 提高产品的稳定性避免出现异常。
多服务器的相通性是一个非常重要的课题。
标签:文件,rsync,server,xx,一致,服务器,对比,上面
From: https://www.cnblogs.com/jinanxiaolaohu/p/18002726