get
ファイルをダウンロードするために使用できますが、sftp
既にターゲットフォルダにあるファイルを再ダウンロードするのを防ぐことができるかどうか疑問に思います。
ベストアンサー1
sftp
限られた能力。それにもかかわらず、このget
コマンドにはこの問題を解決するオプションがあります。get -a
部分ダウンロードを完了します。したがって、ファイルがクライアントにすでに存在し、少なくともサーバー上のファイルと同じ大きさであれば、ダウンロードされません。ファイルが存在するが長さが短い場合、ファイルの終わりが転送されます。これは、ローカルファイルがダウンロードが中断された結果である場合に当てはまります。
SFTPを介して複雑なタスクを実行する最も簡単な方法は、次を使用することです。SSHFS。 SSHFS は、SFTP を使用してリモートファイルシステムをローカルファイルシステムとして表示するファイルシステムです。クライアント側では、SSHFSには次のものが必要です。ヒューズ、ほとんどの最新のuniceで利用可能です。サーバーでは、SSHFSにはSFTPが必要です。サーバーがSFTPを許可している場合は、SSHFSを使用できます。
mkdir server
sshfs server.example.com:/ server
rsync -a server/remote/path /local/path/
fusermount -u server
SSHFS 経由の rsync はリモート側で部分チェックサムを計算できないため、デルタ転送アルゴリズムを利用できません。ワンタイムダウンロードには問題ありませんが、変更されたファイルを同期する場合は無駄です。変更されたファイルを効果的に同期するにはを使用しますrsync -a server:/remote/path /local/path/
。ただし、これにはSFTPアクセスだけでなくSSHシェルアクセスも必要です。ただし、シェルアクセスはrsyncコマンドに制限できます。