一、从本地向远端传数据:
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地址或主机名,以及目标目录的路径。
命令的执行流程如下:
rsync
会从/source/directory
目录中读取文件。- 使用
-a
选项,它会递归地复制文件,并保持文件的权限、时间戳等信息。 - 使用
-v
选项,它会在终端中输出详细的处理信息。 - 使用
-z
选项,它会在传输过程中对数据进行压缩。 - 使用
--progress
和--info=progress2
选项,它会显示详细的进度信息。 - 使用
--partial
选项,如果传输过程中断,可以在下次传输时继续未完成的部分。 - 将文件同步到远程服务器的
/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
: 指定本地的目标目录路径。
命令的执行流程如下:
rsync
会从远程服务器上的/source/directory
目录中读取文件。- 使用
-a
选项,它会递归地复制文件,并保持文件的权限、时间戳等信息。 - 使用
-v
选项,它会在终端中输出详细的处理信息。 - 使用
-z
选项,它会在传输过程中对数据进行压缩。 - 使用
--progress
和--info=progress2
选项,它会显示详细的进度信息。 - 使用
--partial
选项,如果传输过程中断,可以在下次传输时继续未完成的部分。 - 将文件同步到本地的
/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
:指定远程服务器的端口号。
示例
-
本地复制
rsync -av /source/directory /destination/directory
将
/source/directory
递归地复制到/destination/directory
。 -
远程复制
rsync -avz user@remote_host:/path/to/source /local/destination
从远程主机
remote_host
上的/path/to/source
复制到本地的/local/destination
。 -
同步
rsync -avu /source/directory /destination/directory
同步两个目录,只更新目标目录中已经存在的文件。
-
排除文件
rsync -av --exclude '*.txt' /source/directory /destination/directory
复制
/source/directory
到/destination/directory
,排除所有.txt
文件。 -
删除目标目录中的多余文件
rsync -av --delete /source/directory /destination/directory
同步
/source/directory
到/destination/directory
,并删除目标目录中不存在于源目录的文件。 -
使用SSH
rsync -avz -e ssh /source/directory user@remote_host:/destination/directory
通过SSH连接到远程主机并复制文件。
这些是 rsync
的一些基本用法,但它的功能非常强大,可以通过组合不同的选项来满足复杂的同步需求。
要在使用 rsync
时显示进度,你可以使用 --progress
选项。这个选项会在文件传输过程中显示每个文件的传输进度,包括已经传输的百分比和传输速度。
示例
-
显示本地复制的进度
bash
rsync -av --progress /source/directory /destination/directory
-
显示远程复制的进度
bash
rsync -avz --progress user@remote_host:/path/to/source /local/destination
-
显示同步的进度
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
这个命令会显示详细的进度信息,包括每个文件的传输速度和剩余时间,并且会保留部分传输的文件,以便在传输中断后可以继续传输。