使用 scp
命令传输文件夹到另一台服务器时,通常需要加上 -r
选项,表示递归地复制整个文件夹。
使用 scp命令
scp -r /path/to/local/folder username@remote_host:/path/to/remote/destination
-r
:递归地传输文件夹及其内容。/path/to/local/folder
:本地文件夹的路径。username
:远程服务器的用户名。remote_host
:远程服务器的IP地址或主机名。/path/to/remote/destination
:远程服务器上的目标路径。
示例:
假设你想将本地 /home/user/myfolder
文件夹传输到远程服务器 192.168.1.100
的 /home/remote_user/
目录中,命令如下:
scp -r /home/user/myfolder remote_user@192.168.1.100:/home/remote_user/
此命令会将 myfolder
文件夹及其所有内容从本地复制到远程服务器指定目录中。
注意:
- 如果远程路径没有指定文件夹,
scp
会将文件夹复制到目标路径下。 - 如果需要使用 SSH 密钥进行身份验证,可以使用
-i
选项指定密钥文件,例如:scp -i /path/to/private_key -r /home/user/myfolder remote_user@192.168.1.100:/home/remote_user/
如果当ssh意外中断 这个传输进程会被打断吗?
是的,使用 scp
命令时,如果 SSH 连接中断(比如网络不稳定、服务器关闭等原因),文件传输进程会被中断,导致传输失败或者文件未完全传输。
为了避免这种情况,你可以使用一些更加稳定、支持断点续传的工具,比如 rsync
,它能在连接断开时自动恢复传输。
使用 rsync
进行传输
rsync
具有断点续传功能,可以帮助你在网络中断后从上次中断的位置继续传输文件,而无需从头开始。下面是如何使用 rsync
命令将本地 /vms
文件夹传输到远程服务器的示例:
rsync -avz -e "ssh -p 17275" /vms/ remote_user@192.168.1.100:/home/remote_user/
解释:
rsync
:文件同步命令,支持断点续传。-a
:归档模式,表示保留文件的权限、符号链接等信息。-v
:显示详细信息。-z
:压缩文件传输,减少网络带宽的使用。-e "ssh -p 17275"
:指定 SSH 使用的端口(17275
)。/vms/
:源目录(末尾加/
表示同步文件夹内容而不是文件夹本身)。remote_user@192.168.1.100:/home/remote_user/
:目标服务器和路径。
优势:
- 断点续传:如果传输中断,
rsync
会在恢复连接后从中断的位置继续传输。 - 增量传输:如果某些文件已经传输过,
rsync
只会传输更改过的部分,避免不必要的重复传输。 - 效率:
rsync
使用压缩和增量传输,使得大规模文件传输更加高效。
如果你希望进一步提高可靠性:
你还可以结合 rsync
和 nohup
或者 screen
来确保即使 SSH 会话断开,传输任务依然能够继续运行。
例如,使用 nohup
命令:
nohup rsync -avz -e "ssh -p 17275" /vms/ remote_user@192.168.1.100:/home/remote_user/ &
这样,即使你关闭了 SSH 会话,rsync
任务也会继续执行。
当它执行转移完成后会显示什么?
当 rsync
完成文件传输后,它会显示一条概要信息,说明传输的情况。具体的输出内容取决于你是否使用了 -v
(详细模式)选项以及传输的文件量。
假设你使用了 -v
(详细模式)选项,输出可能如下:
sending incremental file list
./
file1.txt
file2.txt
folder1/
folder1/file3.txt
sent 104 bytes received 52 bytes 312.00 bytes/sec
total size is 1024 speedup is 6.29
解释:
sending incremental file list
:rsync
正在进行增量同步,即它会根据文件的变化来决定哪些文件需要传输。- 文件和目录列表:列出了所有被传输的文件和目录。如果是空目录或文件夹,它们也会被列出。
sent 104 bytes received 52 bytes 312.00 bytes/sec
:传输过程中,发送和接收的字节数,以及传输速度(字节每秒)。total size is 1024 speedup is 6.29
:文件总大小(在传输过程中是压缩过后的大小),以及“加速比” (speedup
),这是指使用rsync
比直接传输文件更高效的程度。
如果没有使用 -v
选项,输出会更加简洁:
104 bytes sent
52 bytes received
这仅显示了发送和接收的字节数。
如果有错误或中断,rsync
也会给出相关信息,例如:
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.2]
这表示在传输过程中出现了问题,通常是由于网络中断或目标服务器出现故障。如果没有遇到问题,rsync
会正常完成,并显示成功信息。
如果在执行 rsync
时,传输进程因网络中断或其他问题停止了,你可以通过再次执行相同的 rsync
命令来继续未完成的文件传输。由于 rsync
的 增量同步 和 断点续传 特性,它会从上次中断的地方恢复,只会传输未完成的部分,而不是重新传输已经成功传输的文件。
rsync 如何续传
假设你之前的命令是:
rsync -avz -e "ssh -p 17275" /vms/ remote_user@192.168.1.100:/home/remote_user/
如果传输被中断,只需要重新运行相同的命令即可,rsync
会自动检测已传输的文件,并仅继续传输未完成的部分。例如:
rsync -avz -e "ssh -p 17275" /vms/ remote_user@192.168.1.100:/home/remote_user/
关键点:
rsync
会通过文件的时间戳、文件大小等信息来判断哪些文件已经被传输,并跳过它们。- 只有中断或没有传输完全的文件会被重新传输。
更加稳妥的方式:加上 --inplace
和 --partial
选项
--partial
:保留部分已传输的文件,防止在传输中断时丢失已传输的部分。rsync
会保留临时的部分文件,之后它会从中断的位置继续传输,而不会重新开始。--inplace
:直接在目标位置修改文件,而不是创建临时文件。
因此,可以使用以下命令来增加恢复的可靠性:
rsync -avz --partial --inplace -e "ssh -p 17275" /vms/ remote_user@192.168.1.100:/home/remote_user/
说明:
--partial
:防止在中断时丢失部分传输的文件,保证传输过程更可靠。--inplace
:在目标文件中直接更新,而不是在后台创建临时文件,这样能加速恢复。
如果 rsync
已经在执行过程中识别到中断,它会自动尝试从中断的地方继续,并且不会重新传输已完成的部分。如果你曾在断点后中断 rsync
,只需要重新执行相同的命令,rsync
就会接着上次的位置开始传输剩余部分。
使用 -P
选项
如果你希望更直观地看到传输进度和续传状态,可以使用 -P
选项。-P
等同于 --partial --progress
,它不仅启用了部分传输功能,还会显示进度信息:
rsync -avz -P -e "ssh -p 17275" /vms/ remote_user@192.168.1.100:/home/remote_user/
进度输出:
当你使用 -P
时,rsync
会显示如下的进度信息:
sending incremental file list
./
file1.txt
3,584,403 100% 12.23MB/s 0:00:01 (xfer#1, to-check=0/2)
file2.txt
1,234,573 100% 8.45MB/s 0:00:01 (xfer#2, to-check=0/1)
file3.txt
2,893,759 100% 11.20MB/s 0:00:02 (xfer#3, to-check=0/1)
这样,你可以清晰地看到每个文件的传输进度以及传输速度。
总结:
- 只需重新执行相同的
rsync
命令,它会继续从中断位置恢复。 - 使用
--partial
和--inplace
可以保证部分传输的文件不会丢失。 - 使用
-P
可以显示进度并帮助你更好地管理续传过程。
通过这些方法,你可以确保即使传输中断,文件也能够可靠地续传,避免重复传输已完成的部分。
文章標題:scp和rsync的区别
文章連結:https://www.wuyanshuo.cn/16387.html
更新時間:2024年11月13日
1、本站所有資源均不添加推廣檔案或浮水印,壓縮包內若有廣告檔案和浮水印請勿輕易相信。
2、本站資源均為兩層壓縮,第一層7z(尾碼若為wys,請自行修改為7z)有解壓密碼; 第二層zip或cbz,無解壓密碼,可直接使用漫畫類軟件程式查看; 詳情可參攷解壓教程。
3、本站大部分內容均收集於網絡! 若內容侵犯到您的權益,請發送郵件至:admin#wysacg.top我們將第一時間處理! 資源所需價格並非資源售賣價格,是收集、整理、編輯詳情以及本站運營的適當補貼,並且本站不提供任何免費技術支援。 所有資源僅限於參攷和學習,版權歸原作者所有!