Linux rsync 使用文档

发布时间:2023年12月21日

Linux rsync命令文档

简介

rsync是一个功能强大的Linux命令行工具,用于实现文件的快速、安全和高效同步。它可以在本地或远程主机之间复制、备份和同步文件和目录。

命令语法

rsync [OPTION]... SRC [SRC]... DEST
  • SRC:源文件或目录的路径。
  • DEST:目标文件或目录的路径。

常用选项

以下是一些常用的rsync选项,可以根据需要进行调整:

  • -a, --archive:以归档模式进行同步,保持文件属性、权限等信息。
  • -v, --verbose:显示详细输出,列出同步的文件列表。
  • -r, --recursive:递归同步子目录。
  • --delete:删除目标目录中不在源目录中的文件。
  • -z, --compress:在传输过程中压缩数据,减少带宽占用。
  • --exclude=PATTERN:排除符合指定模式的文件或目录。
  • --include=PATTERN:包含符合指定模式的文件或目录。
  • --exclude-from=FILE:从指定文件中读取排除模式。
  • --include-from=FILE:从指定文件中读取包含模式。

示例用法

以下是一些常见的示例用法,可以根据需要进行调整:

  1. 本地同步目录:
rsync -av /path/to/source/ /path/to/destination/
  1. 远程同步目录:
rsync -av user@remote:/path/to/source/ /path/to/destination/
  1. 同步前删除目标目录中多余的文件:
rsync -av --delete /path/to/source/ /path/to/destination/
  1. 压缩数据传输:
rsync -avz /path/to/source/ /path/to/destination/
  1. 排除特定文件或目录:
rsync -av --exclude='*.txt' /path/to/source/ /path/to/destination/
  1. 从文件中读取排除模式:
rsync -av --exclude-from='exclude.txt' /path/to/source/ /path/to/destination/
  1. 从文件中读取包含模式:
rsync -av --include-from='include.txt' /path/to/source/ /path/to/destination/

sync和rsync的区别

syncrsync 都是用于数据同步的工具,但它们之间有一些重要的区别:

  1. 功能

    • syncsync 是一个文件系统命令,用于将内存中的数据写入磁盘,并确保文件系统的一致性。它通常在系统关机时被调用,以确保所有未写入磁盘的数据都被刷新到磁盘中。
    • rsyncrsync 是一个远程数据同步工具,它可以在本地和远程系统之间同步文件和目录。rsync 通过比较源和目标文件的差异,只传输差异部分,因此可以更快速地进行文件同步。
  2. 应用场景

    • sync:主要用于确保文件系统数据的完整性和一致性,通常在关机或重启系统时由操作系统自动调用。
    • rsync:主要用于文件和目录之间的同步,特别是在远程系统之间同步文件时非常常用。
  3. 传输方式

    • syncsync 不涉及传输数据,它只是将内存中的数据刷新到磁盘中。
    • rsyncrsync 通过网络传输数据,可以在本地和远程系统之间同步文件,支持加密传输和压缩等功能。

BR2_PACKAGE_RSYNC和BR2_PACKAGE_LIBRSYNC的区别

BR2_PACKAGE_RSYNCBR2_PACKAGE_LIBRSYNC 都是 Buildroot 中的包,它们分别对应于 rsync 工具和 librsync 库。

rsync 工具是一个功能强大的文件同步工具,它可以通过网络或本地文件系统在多个主机之间同步文件和目录。它使用了一种增量传输算法,可以高效地传输大量文件,并且可以保留文件属性、权限等信息。BR2_PACKAGE_RSYNC 包用于构建 rsync 工具。

librsync 库是一个用于增量文件传输的 C 库,它可以将两个文件或者两个文件流进行比较,并计算出它们之间的差异,从而只传输修改过的部分。librsync 库广泛用于文件备份、同步、镜像等领域。BR2_PACKAGE_LIBRSYNC 包用于构建 librsync 库。

因此,BR2_PACKAGE_RSYNCBR2_PACKAGE_LIBRSYNC 的区别在于它们分别构建了 rsync 工具和 librsync 库。如果你需要使用 rsync 工具来进行文件同步、备份等操作,则需要选择 BR2_PACKAGE_RSYNC 包;如果你需要使用 librsync 库来开发自己的程序,或者希望在其他应用中集成增量传输功能,则需要选择 BR2_PACKAGE_LIBRSYNC 包。

rsync的妙用

  1. 文件同步:rsync可以在本地或远程主机之间快速、安全地同步文件和目录。它只复制有变化的部分,减少传输数据量,节省带宽和时间。

  2. 备份:rsync可以轻松创建文件和目录的备份。通过定期运行rsync命令,你可以将源目录的内容完整地复制到备份目录中,确保数据的安全性。

  3. 远程复制:rsync可以通过SSH协议进行远程复制。这意味着你可以从一台远程主机上复制文件到另一台远程主机,而无需手动登录每台主机。

  4. 增量备份:rsync支持增量备份,只复制源目录中发生更改的文件。这种方式可以节省存储空间,并加快备份过程。

  5. 镜像站点:rsync可以用于创建镜像站点,即将一个网站的内容完整复制到另一个服务器上。这对于提供高可用性和负载均衡非常有用。

  6. 带宽优化:rsync可以通过压缩数据传输来减少网络带宽使用。这对于在低带宽环境下进行文件同步和备份非常有帮助。

  7. 排除和包含模式:rsync可以使用排除和包含模式来控制哪些文件和目录需要复制。你可以根据特定的模式选择性地同步文件,从而更好地满足需求。

  8. 日志记录:rsync可以生成详细的日志文件,记录复制过程中的每一个操作。这对于跟踪问题、分析性能和进行故障排除非常有帮助。

清空文件夹下指定格式文件:

mkdir -p /usr/empty
rsync -av --delete --include=‘/’ --include='.jpg’ --exclude=‘*’ /usr/empty/ /userdata/list/

这是一个使用rsync命令的示例。该命令用于将源目录/usr/empty/中的所有空目录和以.jpg结尾的文件同步到目标目录/userdata/list/中,并删除目标目录中不存在于源目录的文件和目录。

解析该命令的各个选项和参数如下:

  • -av: 启用归档模式并显示详细输出。-a选项表示启用归档模式,它会保留文件属性、递归复制目录等。-v选项表示显示详细输出,即显示每个文件的复制过程。

  • --delete: 删除目标目录中不存在于源目录的文件和目录。这确保目标目录与源目录保持完全同步。

  • --include='*/': 包含所有空目录。--include选项指定要包含的文件或目录模式。*/表示匹配所有空目录。

  • --include='*.jpg': 包含所有以.jpg结尾的文件。同样,--include选项指定要包含的文件或目录模式。*.jpg表示匹配所有以.jpg结尾的文件。

  • --exclude='*': 排除所有其他文件和目录。--exclude选项指定要排除的文件或目录模式。*表示匹配所有其他文件和目录。

  • /usr/empty/: 源目录,要同步的文件和目录的起始位置。

  • /userdata/list/: 目标目录,要将文件和目录同步到的位置。

文章来源:https://blog.csdn.net/weixin_37787043/article/details/135132841
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。