您的位置:首页 > 运维架构 > Shell

多线程核对MD5码脚本

2014-02-08 09:25 211 查看
多线程核对MD5码:
#!/bin/bash
read -p "请输入需要核对MD5码的文件具体路径(例:/data/1.txt):" file

if [ -f $file ]
then
echo "此中心MD5码 `/usr/bin/md5sum $file`" >md5.txt
else
echo "中心不存在此文件,请再次确认··"
exit 1
fi
thead_num=10
tmp_fifo_file="/tmp/$$.fifo"
mkfifo $tmp_fifo_file
exec 4<>$tmp_fifo_file
rm -f $tmp_fifo_file

for ((i=0;i<$thead_num;i++))
do
echo ""
done >&4

for i in `cat ip.txt`
do
read -u4
{
echo "$i `ssh root@$i /usr/bin/md5sum $file`" >> md5.txt
sleep 3
echo "" >&4

}&
done
wait
exec 4>&-
# exit 0

#for i in `cat ip.txt`
#do
#echo "$i `ssh root@$i /usr/bin/md5sum $file`" >> md5.txt

#done

a=`awk 'NR==1 {print $2}' md5.txt`
b=`grep -v "$a" md5.txt|wc -l`

if [ $b -eq 0 ]
then
echo "md5码核对全部正确:"
cat md5.txt
else
echo "失败的为:"
echo `grep -v "$a" md5.txt`
echo ""
echo "=================================================================="
echo "成功的为:"
cat md5.txt |grep "$a"
fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell 多线程 MD5