kornシェルを使用したsftpによるローカルおよびリモートMD5の比較

kornシェルを使用したsftpによるローカルおよびリモートMD5の比較

ローカルファイルとプッシュしたリモートファイル間のチェックサムを作成して確認する必要があります。 MD5 検査が合格した場合は継続し、それ以外の場合は中止します。私たちはAIXシステムを使用しているので、KORNシェルスクリプトになければなりません。

これは私のコードです。

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

リモートMD5チェックサムを取得するには?

ベストアンサー1

あなたが言った後:プッシュしたばかりのリモートファイル、sftp(sshコードベース)では、ファイルの違いが発生する可能性が非常に低いです。 2つの異なるファイルのmd5が同じハッシュ値を持つ可能性が低い(サイズ順)。

そして短い答えは次のとおりです。

一つsftp セッションはコマンドのリモート実行を許可しません。。したがって、SSHを介してマシンに接続できない場合、md5をリモートで実行することはできません。

そのため、リモートファイルを確認するにはもう一度読んでください。IMHOは愚かです。


その場合、唯一の方法は次のとおりです。

ssh user@remote-dns-name 

開いているシェルの内側にある場合は、以下を実行します。必要なコマンド:

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

次に、生成されたファイルをローカルコンピュータにコピーします。

おすすめ記事