2013-12-12 6 views
0

Моя цель - создать скрипт, который создает пакеты (.tar файлов) на локальном компьютере, загружать их на удаленные хосты и проверять хэш-сумму MD5.Retrieve MD5 с удаленного хоста

Как бы это сделать:

LOCALHASH=`md5sum package.tar | awk '{print $1}'` 
scp package.tar [email protected]:/opt/package.tar # actually I should use 'expect' here 

REMOTEHASH=`ssh [email protected] "md5sum /opt/package" | awk '{print $1}'` 

# check REMOTEHASH == LOCALHASH and so on 

Вопросы:

  1. Я не хочу иметь дело с expect. Я использовал его, и я чувствую, что меня предает.
  2. На самом деле это проблема с регулярным развертыванием. Как вы это решили?

P.S. На самом деле у меня есть проект с несколькими пакетами после компиляции. Когда пакеты построены, я хочу получить номер версии git, время, версию компиляторов и md5sum каждого пакета. Затем скрипт развертывания загружает пакеты и проверяет md5sum. Почему я это сказал? Поскольку я не могу создать общий файл с суммой MD5, загрузите его и просто запустите команду проверки md5.

+1

Что случилось с вашим решением? – rishta

+0

, вероятно, стоит изучить, как использовать систему управления пакетами, такую ​​как debtools или rpm – Vorsprung

ответ

2

Что я буду делать в этом случае:

LOCALHASH=$(md5sum package.tar | awk '{print $1}') 
scp package.tar [email protected]:/opt/package.tar 

REMOTEHASH=$(
ssh [email protected] <<'EOF' 
md5sum /opt/package.tar | awk '{print $1}' 
EOF 
) 

if [[ $LOCALHASH == $REMOTEHASH ]]; then 
    ### 
else 
    ### 
fi    
Смежные вопросы