当前位置: 首页 > 编程笔记 >

Shell脚本实现线上服务器之间对比文件是否一致

田俊爽
2023-03-14
本文向大家介绍Shell脚本实现线上服务器之间对比文件是否一致,包括了Shell脚本实现线上服务器之间对比文件是否一致的使用技巧和注意事项,需要的朋友参考一下

工作中有时需要对比文件是否一致,通过以下脚本可以实现(比较简单):分享出来,希望能帮助到有同样需求的朋友~


#!/bin/bash

#对比服务器上文件是否一样

# Richard shen 2012/07/08

LC_ALL='en_US.UTF-8'

basedir=`dirname $0`

HOST=$basedir/host.txt

PASSWD="abcd"   #密码

FILE=$basedir/file.txt   

LOG=$basedir/tmp.log

>$LOG

[ ! -f /usr/bin/nc ] && yum -y install nc

[ ! -f /usr/bin/expect ] && yum -y install expect

auto_smart_ssh () {

    expect -c "set timeout -1;

        spawn ssh -o StrictHostKeyChecking=no $2 ${@:3};

                 expect {

                         *assword:* {send -- $1\r;

                         expect {

                             *denied* {exit 2;}

                             eof

                                }

                         }

                  eof     {exit 1;}

                  }

                                  "

 #   return $?

 }

num=0

for file in `cat $FILE`;do

   for host in `cat $HOST`;do

       [[ $host =~ "^#" ]] && continue

       let 'num++'

       if ! /usr/bin/nc -w 1 $host 22 > /dev/null; then

          echo " ssh connect failed." | tee -a $LOG

          continue

       else

          echo -e "\e[32m$host ($FILE) MD5 compared files...\e[0m"

          auto_smart_ssh $PASSWD root@$host md5sum $file | grep $file | grep -v StrictHostKeyChecking | tee -a $LOG

      fi

    done

echo "----------------------------------------------------------"

done


对比的IP地址写入host.txt,需要对比的文件(支持多个文件)写入file.txt
输出结果为:

192.168.113.108 (./file.txt) MD5 compared files...

c84509bb3b109506935dba56b667a136  /data/server/www/apps/ad/fullcollumn.html

192.168.113.111 (./file.txt) MD5 compared files...

c84509bb3b109506935dba56b667a136  /data/server/www/apps/ad/fullcollumn.html

----------------------------------------------------------

192.168.113.108 (./file.txt) MD5 compared files...

d2c965f5222ff47432313c76863f428d  /data/server/www/apps/ad/sky.html

192.168.113.111 (./file.txt) MD5 compared files...

d2c965f5222ff47432313c76863f428d  /data/server/www/apps/ad/sky.html

 类似资料:
  • 本文向大家介绍Shell脚本实现上传zip压缩文件到FTP服务器,包括了Shell脚本实现上传zip压缩文件到FTP服务器的使用技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍python rsync服务器之间文件夹同步脚本,包括了python rsync服务器之间文件夹同步脚本的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python rsync服务器之间文件夹同步的具体代码,供大家参考,具体内容如下 About  rsync 配置两台服务器之间3ssh-key后,可以实现自动化无需手动输入密码,脚本如下: 以上就是本文的全部内容,希望对

  • 本文向大家介绍Shell脚本实现复制文件到多台服务器的代码分享,包括了Shell脚本实现复制文件到多台服务器的代码分享的使用技巧和注意事项,需要的朋友参考一下 在多机集群环境中,经常面临修改配置文件后拷贝到多台服务器的情况,传统的执行scp比较麻烦,所以写了以下shell脚本,可以将指定文件拷贝到多台机器。 使用方法请参见HELP部分代码。

  • 本文向大家介绍shell脚本实现文件锁功能,包括了shell脚本实现文件锁功能的使用技巧和注意事项,需要的朋友参考一下 1.背景 当多个进程可能会对同样的数据执行操作时,这些进程需要保证其它进程没有在操作,以免损坏数据。通常,这样的进程会使用一个“锁文件”,也就是建立一个文件来告诉别的进程自己在运行,如果检测到那个文件存在则认为有操作同样数据的进程在工作。这样的问题是,进程不小心意外死亡了,没有清

  • 本文向大家介绍Shell脚本实现防止国外ip访问服务器,包括了Shell脚本实现防止国外ip访问服务器的使用技巧和注意事项,需要的朋友参考一下 客户的要求,不想让外国的ip来访问服务器,本来要让机房在上端路由解决,但是那些人不鸟你!!!~~~~ 这样的话,只能自己用iptables解决了~~~~~~~~~ 关于 ip库  大家可以去 http://www.ipdeny.com/ipblocks/ 

  • 本文向大家介绍Python 实现两个服务器之间文件的上传方法,包括了Python 实现两个服务器之间文件的上传方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇Python 实现两个服务器之间文件的上传方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。