rsync 语法

一、从本地向远端传数据: 

rsync -avz --progress --info=progress2 --partial  /source/directory user@remote_host_ip:/destination/directory
rsync -avz --progress --info=progress2 --partial  demo.tar.gz user@remote_host_ip:/destination/directory

这个命令使用 rsync 工具来同步本地目录到远程服务器上的目录。下面是命令参数的详细解释:

  • rsync: 是一种快速、多功能的文件复制工具。它特别适用于复制大量数据到本地/远程服务器,或者在两个本地/远程服务器之间复制数据。
  • -avz: 这是三个选项的组合:
    • -a (archive): 归档模式,它等同于 -rlptgoD。它会递归地复制文件,并保持原有的权限、时间戳、硬链接、用户组信息等。
    • -v (verbose): 输出详细的处理过程。
    • -z (compress): 在传输过程中压缩数据,以减少网络传输量。
  • --progress: 显示传输过程中的进度信息。
  • --info=progress2: 控制输出的信息类型。progress2 会显示更详细的进度信息,包括已经复制的文件数量和剩余的文件数量。
  • --partial: 允许对那些因故中断的传输进行续传。
  • /source/directory: 指定要同步的本地源目录路径。
  • user@remote_host_ip:/destination/directory: 指定远程服务器的登录用户名、IP地址或主机名,以及目标目录的路径。

命令的执行流程如下:

  1. rsync 会从 /source/directory 目录中读取文件。
  2. 使用 -a 选项,它会递归地复制文件,并保持文件的权限、时间戳等信息。
  3. 使用 -v 选项,它会在终端中输出详细的处理信息。
  4. 使用 -z 选项,它会在传输过程中对数据进行压缩。
  5. 使用 --progress 和 --info=progress2 选项,它会显示详细的进度信息。
  6. 使用 --partial 选项,如果传输过程中断,可以在下次传输时继续未完成的部分。
  7. 将文件同步到远程服务器的 /destination/directory 目录中。

这个命令适用于需要在本地和远程服务器之间同步大量数据,并且希望看到详细进度信息的场景。

二、从远端向本地传数据:

rsync -avz --progress --info=progress2 --partial user@remote_host_ip:/source/directory /destination/directory 

这个 rsync 命令用于从远程服务器同步文件到本地目录。下面是命令参数的详细解释:

  • rsync: 是一种用于文件和目录同步的工具,它可以通过本地、远程或两者结合的方式工作。
  • -avz: 这是三个选项的组合:
    • -a (archive): 归档模式,它递归地复制文件,并保持原有的权限、时间戳、硬链接、用户组信息等。
    • -v (verbose): 输出详细的处理过程,提供更多的信息。
    • -z (compress): 在传输过程中压缩数据,以减少网络传输量。
  • --progress: 显示传输过程中的进度信息。
  • --info=progress2: 控制输出的信息类型。progress2 会显示更详细的进度信息,包括已经复制的文件数量和剩余的文件数量。
  • --partial: 允许对那些因故中断的传输进行续传。
  • user@remote_host_ip:/source/directory: 指定远程服务器的登录用户名、IP地址或主机名,以及源目录的路径。
  • /destination/directory: 指定本地的目标目录路径。

命令的执行流程如下:

  1. rsync 会从远程服务器上的 /source/directory 目录中读取文件。
  2. 使用 -a 选项,它会递归地复制文件,并保持文件的权限、时间戳等信息。
  3. 使用 -v 选项,它会在终端中输出详细的处理信息。
  4. 使用 -z 选项,它会在传输过程中对数据进行压缩。
  5. 使用 --progress 和 --info=progress2 选项,它会显示详细的进度信息。
  6. 使用 --partial 选项,如果传输过程中断,可以在下次传输时继续未完成的部分。
  7. 将文件同步到本地的 /destination/directory 目录中。

这个命令适用于需要从远程服务器同步大量数据到本地,并且希望看到详细进度信息的场景。使用 -a 选项确保文件的属性被保留,而 -z 选项有助于减少网络传输的数据量,特别是在传输大文件或通过慢速网络连接时。--partial 选项则提供了传输的可靠性,允许在网络不稳定的情况下恢复未完成的传输。




rsync 是一种非常强大的文件同步和传输工具,它主要用于在本地和远程系统之间同步文件和目录。以下是一些基本的 rsync 语法和选项:

基本语法

rsync [OPTION] [FILE] [USER@]HOST:FILE
rsync [OPTION] FILE [USER@]HOST:FILE
rsync [OPTION] [USER@]HOST::MODULE/FILE
rsync [OPTION] rsync://[USER@]HOST[:PORT]/FILE

常用选项

  • -a 或 --archive:归档模式,等同于 -rlptgoD
  • -r 或 --recursive:递归地复制目录。
  • -l 或 --links:保留软链接。
  • -p 或 --perms:保留文件权限。
  • -t 或 --times:保留文件时间戳。
  • -o 或 --owner:保留文件所有者信息。
  • -g 或 --group:保留文件组信息。
  • -D 或 --devices:保留设备文件信息。
  • -v 或 --verbose:详细模式,显示传输过程中的详细信息。
  • -z 或 --compress:在传输过程中压缩数据。
  • -u 或 --update:仅在源文件比目标文件新时才更新。
  • --dry-run:模拟执行,不进行实际的文件传输。
  • --progress:显示传输进度。
  • --delete:删除目标目录中已经不存在于源目录的文件。
  • --exclude:排除指定的文件或目录。
  • --include:包括指定的文件或目录。
  • --port:指定远程服务器的端口号。

示例

  1. 本地复制

    rsync -av /source/directory /destination/directory

    /source/directory 递归地复制到 /destination/directory

  2. 远程复制

    rsync -avz user@remote_host:/path/to/source /local/destination

    从远程主机 remote_host 上的 /path/to/source 复制到本地的 /local/destination

  3. 同步

    rsync -avu /source/directory /destination/directory

    同步两个目录,只更新目标目录中已经存在的文件。

  4. 排除文件

    rsync -av --exclude '*.txt' /source/directory /destination/directory

    复制 /source/directory/destination/directory,排除所有 .txt 文件。

  5. 删除目标目录中的多余文件

    rsync -av --delete /source/directory /destination/directory

    同步 /source/directory/destination/directory,并删除目标目录中不存在于源目录的文件。

  6. 使用SSH

    rsync -avz -e ssh /source/directory user@remote_host:/destination/directory

    通过SSH连接到远程主机并复制文件。

这些是 rsync 的一些基本用法,但它的功能非常强大,可以通过组合不同的选项来满足复杂的同步需求。


要在使用 rsync 时显示进度,你可以使用 --progress 选项。这个选项会在文件传输过程中显示每个文件的传输进度,包括已经传输的百分比和传输速度。

示例

  1. 显示本地复制的进度

    bash

    rsync -av --progress /source/directory /destination/directory
  2. 显示远程复制的进度

    bash

    rsync -avz --progress user@remote_host:/path/to/source /local/destination
  3. 显示同步的进度

    bash

    rsync -avu --progress /source/directory /destination/directory

详细输出

  • 进度条:显示每个文件的进度条,包括已传输的百分比。
  • 速度:显示当前的传输速度。
  • 剩余时间:估算剩余的传输时间。

这些信息对于监控大文件或大量文件的传输非常有用,尤其是在网络速度较慢或文件较大的情况下。

其他有用的选项

  • --info=progress2:显示更详细的进度信息,包括每个文件的传输速度和剩余时间。
  • --partial:保留部分传输的文件,这样如果传输被中断,下次可以继续传输。

完整示例

bash

rsync -avz --progress --info=progress2 --partial /source/directory user@remote_host:/destination/directory

这个命令会显示详细的进度信息,包括每个文件的传输速度和剩余时间,并且会保留部分传输的文件,以便在传输中断后可以继续传输。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值