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