Usando o shell korn para comparar o MD5 local e o remoto pelo sftp

1

Estou precisando criar e verificar somas de verificação entre um arquivo local e o arquivo remoto que acabei de enviar. Se o MD5 verificar, continue, ou então, quebre. Isso precisa estar no shell script do KORN porque estamos usando máquinas AIX.

aqui está o código que eu tenho até agora:

for file in <<Directory>>; do
    -- Get MD5 of local file
    LOCALMD5=!chsum "$(basename "$file")"
    sftp <<USER>>@<<IP>> <<EOF
    PUT file <<SFTP OUTPUT FOLDER>>
    REMOTEMD5= <<<COMMAND HERE>>>>  <<--- Which command?
    IF [[LOCALMD5!=REMOTEMD5]]; THEN
        RETURNVALUE = -1
        BREAK
done

print RETURNVALUE

Como obtenho a soma de verificação MD5 remota?

    
por arcee123 10.10.2018 / 22:25

1 resposta

1

Como você diz: o arquivo remoto que acabei de empurrar , a probabilidade de qualquer diferença no arquivo é extremamente baixa em relação ao sftp (com base no código ssh). Tão baixo quanto (na ordem de) a probabilidade de que o md5 de dois arquivos diferentes tenha o mesmo hashsum.

E a resposta curta é:

Uma sessão sftp não permite a execução remota de comandos . Então, se você não pode usar o ssh para a máquina, você não tem como rodar remotamente o md5.

Então, para verificar um arquivo remoto, você precisará lê-lo de volta, o que, IMhO parece bobo.

A única maneira é, então, fazer:

ssh user@remote-dns-name 

E, uma vez no shell aberto, execute o comando (s) necessário :

$ cd path/to/file
$ csum -h MD5 >MD5-hashsum-filename

E, em seguida, copie o arquivo criado de volta para a máquina local.

    
por 10.10.2018 / 23:26