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 [壓縮] tarfile 並將其放入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「嘗試繼續中斷的傳輸,而不是覆蓋現有的部分或完整檔案副本。如果部分內容與正在傳輸的內容不同,則產生的檔案可能已損壞。

相關內容