scp 递归上传不完整

scp 递归上传不完整

我想使用 scp 传输一个文件夹及其内容,包括子目录。目录的大小为16.2GB,包含40.647文件和7.463子目录。本地计算机运行 Windows 10,远程计算机运行 Lubuntu。

我尝试运行命令scp -r "D:/Projekts" backup:/home/lars/backupscp -r "D:/Projekts/." backup:/home/lars/backupscp -r "D:/Projekts/*" backup:/home/lars/backup。第二个带点的命令由于找不到文件而未执行。我还尝试了 PowerShell 和 CMD。

在命令之后(第一或第三)执行后,部分目录已上传。

正在上传的文件夹结构的大小为:scp -r "D:/Projekts/*" backup:/home/lars/backup9.9GB包含9737文件。查看文件夹结构的内容,您可以看到,已上传的子目录已完全上传,按字母顺序开始。只缺少几个子目录。

另一个文件夹结构的大小2.4GB2262Files 相同。此文件夹结构的内容相同,不同之处在于上传的子目录较少。

从事实来看,scp 在某种程度上限制了您可以一次上传的文件数量,这是合理的,因为在明确上传这些子目录时,未上传的子目录可能会被上传。

上传整个目录的可能解决方案是什么?

答案1

scp是一个很棒的工具,但是对于大量的文件,我建议你尝试一下rsyncrsync将在 上运行ssh,因此你不需要在系统上进行更多配置,除了可能获得一个rsync适合你的平台/操作系统的版本 - 我猜是 Windows。

命令行的形式如下:

rsync -az "D:/Projekts/" backup:/home/lars/backupp/

... 虽然我不是活跃的 Windows 用户,所以你必须确保这些路径适用于 Windows。

需要注意的是,结尾的斜杠 ( /) 是有意义的,因此您应该阅读 的手册页rsync。还有许多其他选项可以帮助您实现目标。其中最值得注意的是--delete,它会删除目标上不存在或不再存在于源上的文件。

如果发生中断,无论是网络中断还是其他任何原因,您都可以重新发出相同的 rsync 命令,它将只找出需要(重新)传输的文件。

相关内容