rsync命令详解

 

rsync命令是Linux和其他Unix-like系统上一个非常强大的命令行工具,主要用于数据同步和文件传输。它的名字是"remote sync"的缩写,但不仅限于远程同步,也支持本地文件和目录之间的同步。rsync的主要优势在于其高效的增量传输方式,即只传输源和目标之间发生变化的文件块,而不是整个文件。以下是rsync命令的详细解释:

一、基本功能

  • 数据同步:在本地或远程主机之间同步文件和目录。
  • 增量传输:只传输变化的文件块,减少数据传输量。
  • 多种选项:提供丰富的选项来满足不同的同步需求。

二、常用选项

 

选项说明
-a, --archive 归档模式,递归并保留对象属性,等同于-rlptgoD。
-v, --verbose 显示同步过程的详细(verbose)信息。
-r, --recursive 递归模式,包含目录及子目录中所有文件。
-l, --links 对于软链接文件仍然复制为软链接文件。
-p, --perms 保留文件的权限标记。
-t, --times 保留文件的时间标记。
-g, --group 保留文件的属组标记(仅超级用户使用)。
-o, --owner 保留文件的属主标记(仅超级用户使用)。
-D 保留设备文件及其他特殊文件。
-z, --compress 在传输文件时进行压缩。
-H, --hard-links 保留硬链接。
-A, --acls 保留ACL属性(隐含--perms)。
--delete 删除目标位置有而原始位置没有的文件。
--exclude='pattern' 排除与指定模式匹配的文件或文件夹。
--exclude-from='file' 从指定文件中读取排除模式,并进行同步。
--include='pattern' 只包括与指定模式匹配的文件或文件夹。
--include-from='file' 从指定文件中读取包含模式,并进行同步。
--progress 显示同步进度和速度信息。
--dry-run 模拟同步操作,显示将要发生的更改,但不实际执行。
--bwlimit=KBPS 限制带宽使用率,以KB/s为单位。

 

三、使用方法

rsync的使用方法非常灵活,可以通过多种方式进行文件同步,包括通过远程shell或rsync守护进程。基本的使用格式如下:

  • 本地同步:rsync [OPTION]... SRC... [DEST]
  • 通过远程shell同步(拉取):rsync [OPTION]... [USER@]HOST:SRC... [DEST]
  • 通过远程shell同步(推送):rsync [OPTION]... SRC... [USER@]HOST:DEST
  • 通过rsync守护进程同步(拉取):rsync [OPTION]... [USER@]HOST::SRC... [DEST]
  • 通过rsync守护进程同步(推送):rsync [OPTION]... SRC... [USER@]HOST::DEST

四、应用实例

  1. 将本地目录复制到远程主机:

    bash复制代码
      rsync -avz /local/dir/ user@remote:/remote/dir/
  2. 从远程主机复制目录到本地:

    bash复制代码
      rsync -avz user@remote:/remote/dir/ /local/dir/
  3. 使用SSH协议进行远程复制(等同于上述示例,因为rsync默认使用SSH):

    bash复制代码
      rsync -avz -e ssh /local/dir/ user@remote:/remote/dir/
  4. 仅列出远程主机上的文件而不复制:

    bash复制代码
      rsync -avzn user@remote:/remote/dir/ /local/dir/
  5. 使用rsync进行增量备份:

    bash复制代码
      rsync -avz --backup --backup-dir=/backup/dir/ /source/dir/ /destination/dir/
  6. 限制传输带宽:

    bash复制代码
      rsync -avz --bwlimit=500 /source/dir/ /destination/dir/

 

测试: 同步本地test目录到远程服务器192.168.1.200 的test目录

rsync -avhpW --no-compress -P4 --progress /test/ root@192.168.1.200:/test/

 

posted @ 2024-07-29 11:54  david_cloud  阅读(355)  评论(0编辑  收藏  举报