
我正在運行 Windows 10,伺服器在 Debian 10 上,我正在複製斯韋爾特從我的電腦到遠端伺服器的建置目錄。我正在使用命令來複製文件:
scp -r ./build [email protected]:~/directory
但有些文件(和整個目錄)始終被遺漏,我最終不得不檢查並手動複製它們。
遠端目錄。
本地目錄;整個(play)
目錄被刪除。
我嘗試用詳細的參數來運行它,但它沒有告訴我任何特別的東西(我認為)。為什麼會這樣,我該如何防止呢?
答案1
我通常使用 SCP 一次傳輸一個檔案。或只是與特定目錄中的模式相符的檔案。絕不用於複製完整的目錄結構
對於類似的情況,我會使用 Rsync。例如,以下是轉換為 Rsync 等效命令的命令:
rsync -avzh ./build [email protected]:~/directory
試試看。它應該有效。
答案2
我認為 SCP 需要一個目錄結構才能存在於遠端伺服器上。它不會創建資料夾。
您可以將-e
標誌與 rsync 一起使用,以使用遠端 shell 來執行傳輸。
rsync -r -e "ssh -p 222" /home/test/dev [email protected]:/home/remotetest/dev
答案3
我剛剛遇到了同樣的問題,這很可能是由這個錯誤引起的:https://github.com/PowerShell/Win32-OpenSSH/issues/1897
SCP 由於目錄結構深度超過八個資料夾的遞歸副本而失敗。在目標中建立直至第 8 個目錄的目錄,但不會建立比第 8 個目錄更深的目錄。根本不複製任何文件。
在我的例子中,實際上大多數文件都被複製了,但有些文件丟失了 - 不僅來自 8 級以下的目錄,而且還來自更高的目錄級別。
我的 Windows 10(包含所有更新)上發生故障的 scp 版本是版本 8.1.0.1。我安裝了 openssh v9.5.0.0p1舀相反,它可以正常工作。