md5sum
一部のファイルからサーバーへのリモート結果を、ローカルmd5sum
ファイルと一致するファイルと比較しようとしています。ローカル サーバーから削除hash
する必要があります。filename
両方からの取得に関するアルゴリズム全体md5sum
が完了しました。次のようなものがあります。
remote_list="<hash values> <filename>.gz"
local_list="<hash values> <filename>.gz"
しかし今、私は両方のリストにあるものを比較する必要があります。do two で考えていましfor's
たが、これは良いアプローチ (そして効率的なアプローチ) なのだろうかと思います。
これまでのところ、私はこれをしました:
#!/bin/bash
datacenter="amazon"
hostname=`hostname`;
path="backup/server245"
s3=`s3cmd ls --list-md5 s3://company-backup/company/"$datacenter"/"$hostname"/"$path"/`;
s3_list=$(echo "$s3" | tr -s ' ' | cut -d ' ' -f 4,5 | sed 's= .*/= =');
echo "$s3_list"
locally=`md5sum /"$path"/*.gz`;
echo "$locally";
locally_list=$(echo "$locally" | sed 's= .*/= =');
echo "$locally_list";
これにより、次の出力が得られます。
d41d8cd98f00b204e9800998ecf8427e #md5 from remote folder
41eae9b40d23de2f02bf07635870f6d0 app.20121117040001.gz #remote file
541b1bf78682f48867cc99dbb53c4c3a app.20121118040001.gz #remote file
31d90af7969f5003b27f68e27e7f2cb1 app.gz #remote file
31d90af7969f5003b27f68e27e7f2cb1 /backup/server245/app.gz #local file
両方の場所にあるのでapp.gz
、ローカルのマシンから削除できます。アイデアや提案はありますか?