

windowsローカル環境から、サーバーへSTFPを使ってファイルをダウンロードする処理の中で、ダウンロードしたファイルとサーバーにあるファイルが同一であるかチェックしたいと思っています。  
そのため、チェック処理を行いたいのですが、どのようにリモートサーバーのファイルのハッシュ値を取得すればいいのかというところで躓いています。  
よろしくお願いいたします。


CC BY-SA 3.0
2018-02-20T05:30:32.183
41862
2018-02-21T07:02:53.650
23953
question
python python3 ssh openssh
paramikoでリモートサーバーのファイルのチェックサムはどのように取得したらよいでしょうか？


サーバ側がUNIX系OSであると仮定しますが、サーバ上にある md5sum や sha256sum
といったチェックサムを計算してくれるコマンドをsshで実行して結果のテキストを受け取ればよいかと思います。

[code]

    import paramiko
    
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect("hoge.example.com", username="test", password="testpass")
    
    stdin, stdout, stderr = ssh.exec_command('md5sum .bashrc')
    
    for line in stdout:
        print(line.strip('\n'))
    ssh.close();
    
[/code]

ファイル正常転送の確認をしたいならば、ローカルで同様のアルゴリズムにてチェックサムを計算しておいて比較すればよいでしょう。

お試しください。


CC BY-SA 3.0
2018-02-21T07:02:53.650
41889
2018-02-21T07:02:53.650
27410
41862
answer