• 关于rsync用不了之后


    1.尝试找出rsync使用错误原因:

    我遇见一个问题:rsync:read errors mapping:communication error on send (70),我查了一下这个问题很大可能是网络链接导致的,然后我用nslookup指令查看了/train25/目录下放处理结果的ip,发现是172.20.23.86,然后我在172.20.81.181用ping看了一下,丢包率是0,说明节点是可以链接到的,我现在就不知道该怎么办了。

    就是这个错误

    "rsync: read errors mapping: communication error on send" 是 rsync 命令执行时可能遇到的错误消息之一。这个错误通常表示在发送数据时发生了通信错误。
    这种错误可能有多种原因,包括网络连接问题、权限限制、防火墙配置等。下面是一些可能的原因和对应的解决方法:
    
    1.网络连接问题:确保源主机和目标主机之间的网络连接正常。尝试通过 ping 命令检查两台主机之间的网络连通性。
    2.防火墙配置:检查源主机和目标主机的防火墙设置。确保所使用的端口(默认情况下 rsync 使用TCP端口 873)在防火墙中开放并允许 rsync 的传输。
    3.权限限制:确保您有权限进行网络传输操作。检查您使用的 rsync 命令中是否包含合适的权限选项,如 --rsync-path 或 -e 选项等。
    4.Rsync 版本兼容性:某些 rsync 版本可能与其他版本不兼容,例如在使用不同的协议或选项时可能会导致通信错误。确保源主机和目标主机上的 rsync 版本兼容,并尽可能使用相同的 rsync 版本。
    5.其他因素:除了上述提到的原因,其他因素如系统资源限制、磁盘空间不足等都可能导致通信错误。您可以检查目标主机的磁盘空间情况,确保足够的可用空间来接收传输的数据。
    
    如果通过尝试上述解决方法仍然无法解决问题,您可以提供更多关于错误的详细信息,例如完整的错误消息、rsync 命令的使用方式以及相关的操作环境,以便我们提供更准确的支持。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    如果您在 Linux 系统中只知道目标文件夹的地址,并想使用 ping 命令来测试与目标主机的连通性,您需要进行以下步骤:
    
    1.获得目标主机的 IP 地址:根据目标文件夹的地址,您可能需要获取目标主机的 IP 地址。您可以使用工具如 nslookup 或 ping 来查找该地址。例如,使用以下命令通过 nslookup 来查找目标地址的 IP:
    
       nslookup 目标地址
    
    
    2.使用 ping 进行测试:一旦您拥有目标主机的 IP 地址,即可进行 ping 测试。使用以下命令来执行 ping 测试:
    
       ping 目标IP地址
    
    请将 "目标IP地址" 替换为实际的目标主机 IP 地址。
    例如,如果目标主机的 IP 地址是 192.168.0.100,您可以使用以下命令进行 ping 测试:
       ping 192.168.0.100
    
    
    3.分析结果:ping 命令将发送 ICMP 回声请求消息到目标主机,并显示接收到的 ICMP 回声应答消息。您可以观察到往返时间(RTT)和丢包率等信息。如果您成功收到来自目标主机的 ICMP 回应,则说明您与目标主机建立了网络连接。
    
    如果 ping 命令显示无法到达目标主机或连接超时等错误消息,则可能存在网络连接问题。您可以检查网络配置、防火墙设置以及目标主机是否正常运行来排除问题。
    请注意,如果目标主机设置了防火墙规则以阻止 ICMP 请求或禁用了 ping 命令,那么 ping 命令可能无法使用。在这种情况下,您可能需要使用其他网络工具进行连通性测试,如 telnet 或 nc 等。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    在 Linux 上,除了 rsync,还有其他几个常用的类似工具可以用于文件同步和复制。以下是其中一些常见的工具及其简要说明以及基本用法:
    
    1.cp:是 Linux 下最基本的文件复制工具之一,用于将文件或目录从一个位置复制到另一个位置。
    
    
    2.用法示例:cp source_file destination_file
    
    
    3.scp:是基于 SSH 的安全拷贝工具,用于在本地计算机和远程计算机之间复制文件或目录。
    
    
    4.用法示例:scp source_file user@remote:/path/to/destination
    
    
    5.cpio:是一个归档工具,通常与 find 命令结合使用,用于将文件打包成归档文件或复制文件到另一个目录。
    
    
    6.用法示例:find source_directory | cpio -pdm destination_directory
    
    
    7.tar:是一个广泛使用的归档工具,用于打包多个文件并可选地压缩成单个文件。
    
    
    8.用法示例:打包文件:tar -cvf archive.tar file1 file2 file3;解包文件:tar -xvf archive.tar
    
    
    9.dd:是一个强大的块设备复制工具,可以复制磁盘、分区、镜像等。
    
    
    10.用法示例:dd if=/dev/source of=/dev/destination
    
    
    11.mv:是用于移动文件或目录的命令,也可以用于重新命名文件或目录。
    
    
    12.用法示例:mv source_file destination_file 或 mv source_directory destination_directory
    
    
    13.rsync:已经提到过,是一个功能强大的文件同步和备份工具,可以在本地或通过 SSH 进行文件同步。
    
    
    14.用法示例:rsync source_file user@remote:/path/to/destination
    
    这只是一些常用的工具,用于文件复制、同步和备份。每个工具都有不同的特性和用法。您可以通过 man 命令查看每个命令的详细用法和参数,例如 man cp、man scp 等。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    2.查看了上面这些之后,我尝试使用Python解决问题:
    使用了python里的shutil库,copy2()函数,这个函数可以复制文件的条件下,还能保存源文件的基础信息。
    但是由于这个速度不如rsync快吧或者是别的原因,在服务器上运行太久了,系统给我kill掉了…

    3.改用scp指令尝试中:

    Linux 中的 cp 和 rsync 工具在文件复制方面具有一些差异,这可以解释它们的复制速度不同。主要的底层区别如下:
    
    1.复制方式:
    
    
    2.cp:cp 是一个基本的文件复制工具,它通过逐个读取源文件的内容,并将其写入目标文件来执行复制操作。它按顺序逐个复制文件,没有过多的优化或增量复制的功能。
    3.rsync:rsync 是一个功能强大的文件同步和备份工具。它使用特定的算法,称为增量复制(incremental copy),可以仅复制源和目标之间发生变化的部分。这意味着只有需要更新或新增的文件和数据块会被复制,减少了数据传输量和复制时间。
    
    
    4.传输协议:
    
    
    5.cp:cp 只能在本地文件系统上进行操作,无法进行远程文件复制。
    6.rsync:rsync 支持本地和远程文件复制,并且可以通过 SSH 或 rsync 协议在不同主机之间进行快速、安全的文件传输。
    
    
    7.判定文件变化:
    
    
    8.cp:cp 在复制文件时没有内置的判定机制,它无法确定源和目标文件之间是否存在差异,因此每次复制时都需要复制整个文件。
    9.rsync:rsync 使用快速的检测算法来比较源和目标文件的差异,只复制变化的部分。这使得 rsync 在重复的同步操作中具有高效性,只需要传输最小量的数据。
    
    以上差异解释了为什么 rsync 可能在某些情况下比 cp 更快。它通过增量复制和差异判定的机制,只复制变化的部分,从而减少了数据传输量和复制时间。但是,这些差异也意味着 rsync 在某些情况下可能会更复杂,并且可能在某些特定场景中速度较慢,特别是对于整个文件都需要复制的场景。因此,选择合适的工具取决于具体的使用场景和需求。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    我觉得吧应该差不多,因为我这个文件复制,根本就没有差异,我的目标路径就是一个空文件夹。一会测试一下速度。

  • 相关阅读:
    数组去重方法总结(记录)
    HDFS 动态扩容、动态缩容以及黑白名单
    C++学习第十课--构造函数详解、explicit与初始化列表笔记
    基于SpringBoot的音乐网站
    Adobe Acrobat Pro DC 2023:提升工作效率,激发创意灵感 mac/win版
    【牛客刷题-SQL】SQL3 查询结果去重
    Spring Boot访问静态资源
    net中c#教程 network的常用操作,包括上传、下载
    安卓开发项目优化小技巧
    C语言二维数组和多维数组的概念
  • 原文地址:https://blog.csdn.net/weixin_51402967/article/details/132708241