linux下rsync命令详解

不及物动词 其他 174

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    rsync是Linux系统下一个强大的文件同步和备份工具。它可以在本地或远程主机之间进行快速、安全的文件传输和备份。下面我将详细介绍rsync命令的使用及其常见用法。

    1.基本语法:
    rsync [OPTION] SOURCE DEST

    其中,SOURCE表示源文件或目录,DEST表示目标文件或目录。

    2.常用选项:
    -av:以归档模式传输文件,保留文件的所有属性、权限和时间戳。
    -r:递归复制目录和子目录。
    -z:压缩传输文件,可以加快传输速度。
    –delete:删除目标目录中不在源目录中的文件。
    –exclude:排除指定文件或目录不进行传输。
    -e:指定远程主机的SSH登录身份验证。
    –progress:显示传输进度信息。

    3.常见用法:
    3.1本地文件同步:
    rsync -av SOURCE DEST

    例如,将本地目录A同步到本地目录B:
    rsync -av /path/to/dirA/ /path/to/dirB/

    3.2本地到远程主机的文件传输:
    rsync -av SOURCE username@remote_host:DEST

    例如,将本地目录A传输到远程主机B的目录C:
    rsync -av /path/to/dirA/ username@remote_host:/path/to/dirB/

    3.3远程主机到本地的文件传输:
    rsync -av username@remote_host:SOURCE DEST

    例如,将远程主机B的目录C传输到本地目录D:
    rsync -av username@remote_host:/path/to/dirB/ /path/to/dirD/

    3.4远程主机之间的文件传输:
    rsync -av username@remote_hostA:SOURCE username@remote_hostB:DEST

    例如,将远程主机A的目录C传输到远程主机B的目录D:
    rsync -av username@remote_hostA:/path/to/dirC/ username@remote_hostB:/path/to/dirD/

    4.其他常见功能:
    4.1跳过特定目录或文件:
    rsync -av –exclude ‘dir_name’ SOURCE DEST

    例如,排除目录A和文件B,将源目录C传输到目标目录D:
    rsync -av –exclude ‘dirA’ –exclude ‘fileB’ /path/to/dirC/ /path/to/dirD/

    4.2删除目标目录中不存在的文件:
    rsync -av –delete SOURCE DEST

    例如,将源目录A同步到目标目录B,并删除目标目录B中不存在于源目录A中的文件:
    rsync -av –delete /path/to/dirA/ /path/to/dirB/

    以上就是对rsync命令的详细介绍和常见用法。通过rsync命令,我们可以方便地进行文件同步和备份操作,提高工作效率,确保文件的安全性。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    rsync是一个常用的用于文件同步和备份的工具,在Linux系统下非常流行。下面是rsync命令的详解:

    1. 语法和基本用法:
    rsync的基本语法是:
    rsync [选项] 源文件/目录 目标文件/目录

    例如,要将本地的/home/user/files目录同步到远程服务器的/var/backup目录下,可以使用以下命令:
    rsync -avz /home/user/files myuser@remoteserver:/var/backup

    -a:以归档模式进行同步,保留文件属性、权限和链接。
    -v:显示详细的同步过程。
    -z:使用压缩模式传输数据,减少网络带宽的消耗。

    2. 同步本地文件和目录:
    使用rsync命令可以方便地同步本地文件和目录。可以指定多个源文件/目录,以及一个目标文件/目录。

    例如,要将本地的/home/user/files目录同步到本地的/tmp目录下,可以使用以下命令:
    rsync -av /home/user/files /tmp

    3. 同步本地文件到远程服务器:
    rsync可以轻松地将本地文件同步到远程服务器上。需要指定远程服务器的地址和登录用户名。

    例如,要将本地的/home/user/files目录同步到远程服务器的/var/backup目录下,可以使用以下命令:
    rsync -av /home/user/files myuser@remoteserver:/var/backup

    4. 同步远程服务器文件到本地:
    rsync也可以将远程服务器上的文件同步到本地。同样需要指定远程服务器的地址和登录用户名。

    例如,要将远程服务器myuser@remoteserver:/var/backup目录下的文件同步到本地的/tmp目录下,可以使用以下命令:
    rsync -av myuser@remoteserver:/var/backup /tmp

    5. 使用排除规则:
    rsync命令可以使用排除规则来过滤不需要同步的文件和目录。可以使用”–exclude”参数指定要排除的文件/目录的模式。

    例如,要将本地的/home/user/files目录同步到远程服务器的/var/backup目录下,排除掉所有以“.log”结尾的文件,可以使用以下命令:
    rsync -av –exclude “*.log” /home/user/files myuser@remoteserver:/var/backup

    总结:
    rsync是一个非常强大的文件同步和备份工具,可以简化文件同步的操作。通过使用合适的选项和参数,可以实现本地文件和目录的同步、本地文件到远程服务器的同步、远程服务器文件到本地的同步,并且可以使用排除规则来过滤需要同步的文件和目录。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    一、rsync命令简介
    rsync是一个用于在本地或远程系统之间同步文件和目录的强大工具。它可以通过使用特殊的算法,有效地传输和同步文件,以节省带宽和时间。

    rsync工具具有以下特点:
    1. 支持通过网络传输文件:rsync可以通过本地网络或互联网传输文件,可以在局域网内或跨越不同的网络进行文件同步。
    2. 仅传输修改的部分文件:rsync使用增量文件传输算法,只传输文件中发生修改的部分,从而大大提高传输效率。
    3. 支持文件和目录同步:rsync不仅可以同步文件,还可以同步目录,保持源目录和目标目录的完全一致。
    4. 支持需要认证的远程同步:rsync支持通过SSH进行远程认证,保证传输的数据的安全性。
    5. 提供多种传输方式:rsync支持使用SSH、RSH或直接使用socket的方式进行数据传输,具有灵活性。

    二、rsync命令的基本用法
    rsync命令的基本用法为:
    rsync [OPTION]… SRC [SRC]… DEST

    其中,SRC是源文件或目录,DEST是目标文件或目录,OPTION是rsync命令的选项。

    1. 拷贝本地文件到本地目录
    rsync命令可以用于拷贝本地文件到本地目录,格式为:
    rsync [OPTION]… SRC [SRC]… DEST

    例如,将文件file1.txt和file2.txt拷贝到目录dir2中,可以使用以下命令:
    rsync -av file1.txt file2.txt dir2/

    其中,-a表示使用归档模式进行拷贝,-v表示显示详细的拷贝过程。

    2. 拷贝本地目录到本地目录
    rsync命令还可以用于拷贝本地目录到本地目录,格式为:
    rsync [OPTION]… SRC/ DEST

    例如,将目录dir1中的文件和子目录拷贝到目录dir2中,可以使用以下命令:
    rsync -av dir1/ dir2/

    3. 拷贝本地文件到远程目录
    rsync命令可以通过SSH传输文件,并将文件拷贝到远程目录,格式为:
    rsync [OPTION]… SRC [SRC]… [USER@]HOST:DEST

    例如,将文件file1.txt拷贝到远程主机上的目录dir3中,可以使用以下命令:
    rsync -av file1.txt user@remote:/dir3/

    其中,user是远程主机的用户名,remote是远程主机的IP地址或域名。

    4. 拷贝远程文件到本地目录
    rsync命令还可以从远程主机下载文件,并将文件拷贝到本地目录,格式为:
    rsync [OPTION]… [USER@]HOST:SRC [DEST]

    例如,将远程主机上的文件file2.txt拷贝到本地目录dir4中,可以使用以下命令:
    rsync -av user@remote:/file2.txt dir4/

    5. 远程目录同步
    rsync命令可以同步两个远程主机之间的文件和目录,格式为:
    rsync [OPTION]… [USER@]HOST:SRC [HOST:DEST]

    例如,将远程主机A上的目录dir5同步到远程主机B上的目录dir6中,可以使用以下命令:
    rsync -av user@remoteA:/dir5/ user@remoteB:/dir6/

    6. rsync命令的常用选项
    rsync命令提供了多种选项,用于控制文件传输及同步的行为。以下是rsync命令常用的选项:

    – -a, –archive:使用归档模式进行拷贝,等同于 -rlptgoD。
    – -r, –recursive:对目录进行递归拷贝。
    – -l, –links:拷贝符号链接。
    – -p, –perms:保持文件的权限。
    – -t, –times:保持文件的时间戳。
    – -g, –group:保持文件的组。
    – -o, –owner:保持文件的所有者。
    – -D:保持设备和特殊文件。
    – -v, –verbose:显示详细的拷贝过程。
    – -z, –compress:传输时压缩文件。
    – -P, –progress:显示文件传输的进度。
    – -e, –rsh=COMMAND:指定使用的远程shell命令,默认为ssh。

    例如,使用rsync命令拷贝文件时,通常会使用以下选项的组合:
    rsync -avzP SRC DEST

    其中,-a表示使用归档模式进行拷贝,-v表示显示详细的拷贝过程,-z表示传输时压缩文件,-P表示显示文件传输的进度。

    三、rsync命令的进阶用法
    rsync命令支持更多的高级用法,可用于更复杂的文件同步需求。

    1. 使用排除模式进行文件同步
    rsync命令支持使用排除模式进行文件同步,可以指定哪些文件或目录不需要同步。可以使用–exclude选项来指定排除模式。

    例如,将目录dir7中的文件和子目录拷贝到目录dir8中,并排除掉后缀为.log的文件,可以使用以下命令:
    rsync -av –exclude=*.log dir7/ dir8/

    2. 使用列表文件进行文件同步
    rsync命令还支持使用列表文件来指定要同步的文件和目录,可以使用–list option选项来指定列表文件。

    例如,将文件list.txt中列出的文件和目录拷贝到目录dir9中,可以使用以下命令:
    rsync -av –files-from=list.txt ./ dir9/

    其中,–files-from选项指定了使用的列表文件。

    3. 同步删除文件
    rsync命令默认不会删除目标目录中已经删除的文件,可以使用–delete选项来同步删除文件。

    例如,将目录dir10中的文件和子目录拷贝到目录dir11中,并同步删除dir11中不存在的文件,可以使用以下命令:
    rsync -av –delete dir10/ dir11/

    4. 使用SSH密钥进行免密码认证
    rsync命令可以通过SSH进行远程认证,可以使用SSH密钥进行免密码认证,以便自动化执行文件同步操作。

    例如,将文件file3.txt拷贝到远程主机上的目录dir12中,并使用SSH密钥进行免密码认证,可以使用以下命令:
    rsync -av -e “ssh -i ~/.ssh/id_rsa” file3.txt user@remote:/dir12/

    其中,-i选项指定了使用的SSH私钥文件。

    五、结论
    rsync是一个功能强大的文件同步工具,在Linux系统中得到广泛应用。通过使用rsync命令,可以方便地实现本地文件和目录的拷贝、远程文件的传输和同步等操作。本文对rsync命令的基本用法和进阶用法进行了详细介绍,希望能帮助读者更好地使用这个工具。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部