質問: windowsローカル環境から、サーバーへSTFPを使ってファイルをダウンロードする処理の中で、ダウンロードしたファイルとサーバーにあるファイルが同一であるかチェックしたいと思っています。 そのため、チェック処理を行いたいのですが、どのようにリモートサーバーのファイルのハッシュ値を取得すればいいのかというところで躓いています。 よろしくお願いいたします。
回答: サーバ側がUNIX系OSであると仮定しますが、サーバ上にある md5sum や sha256sum といったチェックサムを計算してくれるコマンドをsshで実行して結果のテキストを受け取ればよいかと思います。 ``` 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(); ``` ファイル正常転送の確認をしたいならば、ローカルで同様のアルゴリズムにてチェックサムを計算しておいて比較すればよいでしょう。 お試しください。