sftp put - rsyncと同じ

sftp put - rsyncと同じ

パイプが破損した後にput進行中のファイル転送を再開するには、このコマンドを使用したいと思います。sftp

ターゲットサイズがソースファイルサイズより小さい場合にのみファイルをアップロードする必要があります。

sshアクセス権がないので、これはオプションではrsyncありません。

~からSFTPマニュアル、フラグを指定してみましたput -a -r source_dir/。ところで、転送中にエラーメッセージが表示されます。

  • エラー:Couldn't stat remote file: No such file or directoryファイルがサーバーにありません。
  • エラー:Destination file bigger or same size as source fileサーバーにすでに存在するファイルなので、正しく転送しないでください。

最初のエラーの実際の例:

Uploading of file /Volumes/Seagate/amphioxus/raw_h5/9N0Bp0b0_m150427_041848_42182_c100810932550000001823181110291543_s1_p0.2.bax.h5.gz to /deposits/Pacbio_amphioxus/raw_h5/9N0Bp0b0_m150427_041848_42182_c100810932550000001823181110291543_s1_p0.2.bax.h5.gz failed!
Couldn't stat remote file: No such file or directory

もちろん、ファイルはソースディレクトリに存在します。

解決策はありますか?

答え1

これは解決策ではありませんが、回避策はサーバーをローカルにインストールし、単にデータをコピーすることです。

sshfsリモートディレクトリをマウントするために使用できます。

sudo sshfs -o allow_other,default_permissions [email protected]:/ /mnt/local_directory

その後、使用

cp -ru

マウントされたリモートディレクトリのファイルを欠落しているファイルに更新します。

答え2

ssh最善の解決策は、リモートシステム管理者にアクセスとアクセス許可を要求するか、可能であればアクセス権のみをrsync付与することです。rsync

sftpファイルを配置してインポートできますが、ディレクトリ(およびその内容のディレクトリツリー)は配置できません。

解決策はtarball [圧縮] tarファイルを作成して挿入します。sftp


tar -cvzf filename.tar.gz source_dir/

復旧が必要な場合は、sftp内容をご確認ください。

tar -tvf filename.tar.gz

正しいディレクトリにあることを確認し、tarballから抽出します。

tar -xvf filename.tar.gz

答え3

-asftpオプションを使用してください。man sftpこれはsftpに「ファイルの既存の部分またはコピー全体を上書きするのではなく、中断された転送を続行しようとします。部分的な内容が転送中のものと異なると、結果ファイルが破損する可能性があります」

関連情報