如何在 Linux 中无损恢复中断的 SCP 传输?

您所在的位置:网站首页 下载qq视频文件传输中断怎么办 如何在 Linux 中无损恢复中断的 SCP 传输?

如何在 Linux 中无损恢复中断的 SCP 传输?

2024-07-15 10:38| 来源: 网络整理| 查看: 265

在 Linux 中继续中断的 SCP 传输

前言

文件传输是 Linux 系统中一项常见的任务,通常使用 scp(安全复制)命令。然而,传输过程可能会因网络中断或其他原因而中断。数据丢失可能是这些中断的严重后果。本文探讨如何解决此问题,提供继续中断的 scp 传输进程的方法。

问题:scp 传输中断

scp 命令使用 SSH 协议进行文件传输,不支持增量传输。当传输中断时,已传输的数据将丢失,导致数据不完整或损坏。

解决方案:使用 rsync

rsync 是一个强大的文件传输工具,支持增量传输,这意味着它只会传输自上次传输以来更改的部分。这使得 rsync 成为继续中断的 scp 传输的理想选择。

步骤:使用 rsync 继续传输 安装 rsync

使用以下命令安装 rsync:

sudo apt-get install rsync 确定上次传输的字节数

检查 scp 命令的输出以确定上次传输的字节数。通常会有一行类似于:

23015728 bytes transferred in 630.6 seconds

在此示例中,传输的字节数为 23015728。

使用 rsync 继续传输

使用以下命令继续传输,指定上次传输的字节数作为起点:

rsync -av --partial --progress --bytes-sent=23015728 source_file user@remote_host:/destination_path 替代方法:手动干预

如果没有 rsync,还可以尝试以下方法继续传输,但需要手动干预:

查看传输日志

使用以下命令查看 scp 传输日志:

grep scp /var/log/messages 查找上次传输的字节数

在日志输出中查找类似以下内容的行:

scp: bytes sent = 23015728

在此示例中,发送的字节数为 23015728。

继续传输

使用以下命令继续传输,指定上次传输的字节数作为起点:

scp -C source_file user@remote_host:/destination_path 结论

使用 rsync 或手动干预,你可以继续中断的 scp 传输,避免数据丢失。rsync 是推荐的方法,因为它支持增量传输,提供了更可靠的解决方案。

常见问题解答 我无法确定上次传输的字节数,怎么办?

如果无法确定上次传输的字节数,则无法使用 rsync 或手动方法继续传输。

文件传输多次中断怎么办?

如果文件传输多次中断,这些方法可能无法恢复传输。

rsync 的 -av --partial --progress 参数有什么作用? -av:保留所有属性和权限。 --partial:允许部分传输。 --progress:显示传输进度。 手动方法中的 -C 参数有什么作用?

-C 参数指示 scp 继续部分传输。

这些方法是否适用于所有类型的文件传输?

这些方法适用于通过 scp 进行的文件传输,可能不适用于其他类型的传输协议。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3