ローカルファイルとプッシュしたリモートファイル間のチェックサムを作成して確認する必要があります。 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
次に、生成されたファイルをローカルコンピュータにコピーします。