前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >检测不同服务器上代码差别的shell的脚本

检测不同服务器上代码差别的shell的脚本

作者头像
wo.
发布2021-06-15 11:05:05
4850
发布2021-06-15 11:05:05
举报
文章被收录于专栏:了不得的专栏

在生产中,为了防止高并发,单点,灾变,和负载均衡等一些突发情况,会将多台服务器用来跑用一代码。但是如果上线的代码出现了问题,将导致代码不一样的情况。

代码语言:javascript
复制
#!/bin/bash
#用途:检测不同服务器上代码差别的shell的脚本。
#版本:v0.1

#假设B机器IP地址为192.168.0.1

B_ip=192.168.0.1 
dir=/data/wwwroot/www.abc.com
#首先检查/tmp/md5.list文件是否存在,存在的话就删除掉,避免影响后续操作
[ -f /tmp/md5.list ] && rm -f /tmp/md5.list

#把除了uploads以及tmp目录外其他目录下的全部文件列出来 
  cd $ dir 
    find . \( -path "/uploads*" -o  -path  "./tmp*" \) 

#用while循环,求出所有文件的md5值,并写入一个文件里 
  cat  /tmp/file.Iist l while read line 
  do 
      md5sum  $line 
  done  >>  /tmp/md5.Iist 

#将md5.list拷贝到B机器 
scp  /tmp/md5.Iist  $B_ip:/tmp/ 

#判断/tmp/check_md5.sh文件是否存在 
[ -f  /tmp/check_md5.sh &&  rm -f  /tmp/check_md5.sh ]

#用Here Document编写check_md5.sh脚本内容 
cat > /tmp/check_md5. sh << EOF 

#!/bin/bash 
dir=/data/wwwroot/www.abc.com 
##注意,这里涉及到的特殊符号都需要脱义,比如反引号和$ 

n=\`wc -l /tmp/md5.list | awk '{print \ $1}'`\ 
for i in \`sep 1 \$n\`\
do 
    file_name=\` sed -n "\$i"p  /tmp/md5.list I awk '{print \$1}'\` 
    md5=\`sed -n  "\$i" p  /tmp/md5.Iist  l awk '{print \$2 }'\`
    if  [ -f  \$file_name ] 
    then 
      md5_b= \`md5sum  \$file_name\` 
    if  [  \$md5_b  != \$md5  ]
    then 
        echo  " \$file_name changed" 
    fi 
    else 
        echo  " \$file_name lose " 
    fi 
done  >   /data/change. Iog 
EOF 
scp  /tmp/check_md5.sh  $B_ip:/tmp/ 
ssh $B_ip  "/bin/bash  /tmp/check_md5.sh" 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档