从远程主机检索MD5

时间:2013-12-12 19:00:12

标签: linux bash ssh md5

我的目标是创建一个脚本,在本地计算机上构建一个包(.tar文件),将它们上传到远程主机并检查MD5哈希值。

我该怎么做:

LOCALHASH=`md5sum package.tar | awk '{print $1}'`
scp package.tar user@host:/opt/package.tar # actually I should use 'expect' here

REMOTEHASH=`ssh user@host "md5sum /opt/package" | awk '{print $1}'`

# check REMOTEHASH == LOCALHASH and so on

问题:

  1. 我不想处理expect。我用它,我觉得它背叛了我。
  2. 实际上这是常规部署问题。你是怎么解决的?
  3. P.S。实际上我在编译后有一个包含多个包的项目。构建软件包时,我想得到每个软件包的git版本号,时间,编译器版本和md5sum。然后,部署脚本上载包并检查md5sum。我为什么这么说?因为我无法使用MD5总和创建公共文件,所以上传此文件并运行md5 check命令。

1 个答案:

答案 0 :(得分:2)

在这种情况下我会做什么:

LOCALHASH=$(md5sum package.tar | awk '{print $1}')
scp package.tar user@host:/opt/package.tar

REMOTEHASH=$(
ssh du@mir.afsoft.org <<'EOF'
md5sum /opt/package.tar | awk '{print $1}'
EOF
)

if [[ $LOCALHASH == $REMOTEHASH ]]; then
    ###
else
    ###
fi