工作中有时需要对比文件是否一致,通过以下脚本可以实现(比较简单):分享出来,希望能帮助到有同样需求的朋友~
代码如下 | 复制代码 |
#!/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 -- $1r; 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 |
火柴人绳索英雄2无限金币版 (Stickman Rope Hero 2)安卓版v2.2v3.4.2
下载奥特曼之格斗超人内测版本 安卓最新版v11.0.0
下载奥特曼之格斗超人百度版 安卓版v11.0.0
下载奥特曼之格斗超人4399游戏盒版 最新安卓版v11.0.0
下载德凯奥特曼D闪光剑模拟器 安卓版v1.0
德凯奥特曼D闪光剑模拟器是一个非常有趣的奥特曼变身模拟器,可
亚刻觉醒器 安卓版v1.1
亚刻觉醒器模拟器是一个非常有趣的奥特曼变身模拟器,为喜欢亚刻
海上餐厅无限金币版 v1.0
海上餐厅免广告版是游戏的破解版本,在该版本中为玩家去除了广告
阿西美女室友竟然全解锁版 v1.0.2
阿西美女室友竟然内置菜单版是游戏的破解版本,在该版本中为玩家
我是大东家正版 最新版v1.2.738
我是大东家正版是一款放置类模拟经营手游,玩家将回到古代成为家