2016-12-16 4 views
0

私はAnt <scp>タスクを使用してSFTPサーバーからファイルをダウンロードしています。私はファイルがローカルに存在するかどうか、もしあればそれがサーバー上のファイルと同じかどうかをチェックしたいと思います。 (どのように)それをダウンロードする前にタイムスタンプやハッシュを比較することは可能ですか?ファイルが変更された場合は、Apache Antを使用してSFTPサーバーからファイルをダウンロードする前に確認してください。

<scp file="${ftp.user}:${ftp.password}@${ftp.url}:/my/path/*" 
     failonerror="false" 
     verbose="yes" 
     sftp="true" 
     trust="true" 
     todir="${target.dir}"/> 

答えて

0

私は、チェックサムファイルと私の問題を解決しました:

<checksum file="${temp.dir}${file.separator}my.zip" algorithm="SHA-512" property="zip-checksum"/> 
<scp file="${ftp.user}:${ftp.password}@${ftp.url}:/my/path/my.zip.asc" 
    failonerror="false" 
    verbose="no" 
    sftp="true" 
    trust="true" 
    todir="${temp.dir}"/> 
<loadfile srcfile="${temp.dir}/my.zip.asc" property="my-other-zip"> 
    <filterchain> 
    <striplinebreaks/> 
    <trim/> 
    </filterchain> 
</loadfile> 
<checksum file="${temp.dir}${file.separator}my.zip" property="${my-other-zip}" verifyProperty="zip-checksum-match"/> 
<if> 
    <equals arg1="${zip-checksum}" arg2="${my-other-zip}"/> 
    <then> 
    <echo level="info">Checksum of my.zip (local) is equal to my.zip (server). Skipping...</echo> 
    </then> 
    <else> 
    <echo level="info">Checksum of my.zip (local) is not equal to my.zip (server). Get new zip...</echo> 
    <scp file="${ftp.user}:${ftp.password}@${ftp.url}:/my/path/my.zip" 
     failonerror="false" 
     verbose="no" 
     sftp="true" 
     trust="true" 
     todir="${temp.dir}"/> 
    </else> 
</if> 
関連する問題