로컬 파일과 방금 푸시한 원격 파일 간의 체크섬을 생성하고 확인해야 합니다. 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 코드 기반)에서는 파일 차이가 발생할 가능성이 매우 낮습니다. 서로 다른 두 파일의 md5가 동일한 해시 값을 가질 확률만큼 낮습니다(크기 순서).
그리고 짧은 대답은 다음과 같습니다.
하나sftp 세션은 명령의 원격 실행을 허용하지 않습니다.. 따라서 SSH를 통해 머신에 연결할 수 없으면 md5를 원격으로 실행할 수 없습니다.
따라서 원격 파일을 확인하려면 다시 읽어야 하는데 IMHO는 어리석은 것 같습니다.
그렇다면 유일한 방법은 다음과 같습니다.
ssh user@remote-dns-name
열린 쉘 내부에 있으면 다음을 실행하십시오.필요한 명령:
$ cd path/to/file
$ csum -h MD5 >MD5-hashsum-filename
그런 다음 생성된 파일을 로컬 컴퓨터에 다시 복사합니다.