我的目标是创建一个脚本,在本地计算机上构建一个包(.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
问题:
expect
。我用它,我觉得它背叛了我。 P.S。实际上我在编译后有一个包含多个包的项目。构建软件包时,我想得到每个软件包的git版本号,时间,编译器版本和md5sum
。然后,部署脚本上载包并检查md5sum
。我为什么这么说?因为我无法使用MD5总和创建公共文件,所以上传此文件并运行md5 check命令。
答案 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