0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Linux使用Rsync命令复制和同步文件和目录

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-07 09:47 次阅读

Rsync用于在两个远程计算机之间同步文件和文件夹。它仅通过传输源和目标之间的差异来提供快速的增量文件传输。

Rsync可用于镜像数据,增量备份,在系统之间复制文件,可替代scpsftpcp日常等使用的命令。

rsync命令已预安装在大多数Linux发行版和macOS。可以运行命令rsync --version检查是否已安装rysnc,命令将会打印rysnc的版本号rsync version 3.01

安装rsync

如果终端提示你bash: command not found: rysnc,说明你的系统没有安装rsync。可以使用发行版的软件包管理器安装rysnc。

如果你的计算机运行的系统是基于Debian的Linux发行版,例如Ubuntu,Linux mint请运行命令sudo apt install rsync安装Rsync。

如果你的计算机运行的系统是基于RedHat的Linux发行版。例如CentOS,Fedora。请运行命令sudo yum install rsync安装Rsync。

Rsync命令

rsync语法有三种,分别是本地到本地形式Local to Local,本地到远程Local to Remote,远程到本地Remote to Local。

其中OPTION是rsync选项。SRC是源目录。DEST是目标目录。USER是远程用户名。HOST是远程主机名名称,可以是IP地址或者可解释的域名。

Local to Local:  rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]

rsync提供了许多控制其行为的选项。以下是最经常使用的选项。

-a/--archive存档模式,等效于-rlptgoD。此选项指示rsync递归同步目录,传输特殊设备和块设备,保留符号链接,组,所有权和权限等。

-z/--compress,此选项将强制rsync在数据发送给目标计算机之前对数据进行压缩。

-P等效于--partial --progress。使用此选项时,rsync将在传输过程中显示进度条并保留部分传输的文件。在慢速或不稳定的网络连接传输大文件时非常有用。

--delete使用此选项时,rsync将从目标位置删除相同的文件。适合用于镜像文件。

-q/--quiet此选项禁止显示非错误消息。-e此选项使您可以选择其他远程shell程序。默认使用ssh。

Rsync基础

rysnc最简单的用法就是在本地的目录之间复制文件。运行rysnc命令的用户必须对源目录或者文件具有读取权限,并且对目标目录具有写入权限。

如果目标参数未指定文件名,rsync将会保留原始文件名称。要使用其它文件名称保复制文件,请在目标参数指定文件名。

值得一提的是rsync命令会根据源目录是否使用斜杠/,而又不同的处理方式。

如果在源目录尾部添加斜杠,rsync会将目录的内容复制到目标目录。在省略斜杠,rsync则会将源目录复制到目标目录。

rsync -a /opt/filename.zip /tmp/newfilename.zip

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

Rsync远程同步数据

当使用rsync进行远程传输时,rsync必须安装在源计算机和目标计算机。rsync默使用SSH作为远程shell程序。

如果您尚未为远程计算机设置SSH无密码登录,rsync会要求您输入用户名和密码。远程计算机SSH服务监听的端口不是默认端口22时,请使用-e选项指定端口。

当传输大量数据或者大文件时,建议在screen,nohup,tmux运行rsync命令或使用rsync命令的-P选项。

Rsync 同步本地目录到远程计算机

remote_user是远程计算机的用户名,remote_host_or_ip远程计算机的IP地址或者可解释的域名。

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Rsync 同步远程计算机目录到本地目录

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

Rsync 指定SSH端口

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

Rsync 后台同步数据

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

排除文件和目录

当你要排除文件或目录时,您需要使用源目录的相对路径。有两种方式可以排除文件和目录。

第一种方式是使用rsync命令的--exclude选项,在命令行指定要排除的文件和目录。--exclude选项可以重复使用多次排除多个文件与目录。

第二种方式是使用rsync命令的--exclude-from选项并指定一个文件,该文件包含要排除的目录与文件的路径。

在以下示例中,排除src_directory目录的node_modulestmp目录,也就是目录src_directory/node_modulessrc_directory/tmp

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/
rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
node_modules
tmp

/exclude-file.txt

结论

在本教程中,您学习了如何在Linux使用Rsync命令复制和同步文件和目录。如有任何疑问,请随时发表评论。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10991

    浏览量

    206736
  • 文件
    +关注

    关注

    1

    文章

    540

    浏览量

    24402
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21849
收藏 人收藏

    评论

    相关推荐

    何在Linux使用rm删除文件目录

    rm命令用于删除文件目录。它是每个Linux用户都应该熟悉的基本命令之一。
    发表于 12-08 16:49 2266次阅读

    linux目录操作命令有哪些?linux基础入门

    rm(移除文件目录)用法:rm -f就是 force 的意思,忽略不存在的文件,不会出现警告信息;rm -i互动模式,在删除前会询问使用者是否动作;rm -r递归删除,最常用在目录
    发表于 01-17 14:31

    Linux文件复制、删除和移动命令

    Linux文件复制、删除和移动命令 Linux文件复制
    发表于 01-18 12:45 1203次阅读

    Linux目录的创建与删除命令

    Linux目录的创建与删除命令 Linux目录的创建与删除命令  mkdir
    发表于 01-18 12:46 1251次阅读

    Linux改变文件目录的访问权限命令

    Linux改变文件目录的访问权限命令 Linux改变文件
    发表于 01-18 12:46 1138次阅读

    何在 Linux 中不使用 CD 命令进入目录/文件夹?

    众所周知,如果没有 cd 命令,我们无法 Linux 中切换目录。这个没错,但我们有一个名为 shopt 的 Linux 内置命令能帮助我们
    的头像 发表于 04-16 11:40 5669次阅读

    Linux常用命令/查找/搜索命令/压缩/解压命令网络命令

    3.mkdir4.rmdir5.ls使用示例:6.cp复制目录时,常用如下命令:$ cp -rfd dir_a dir_br:recursive,递归地,即复制所有
    发表于 12-16 16:53 12次下载
    <b class='flag-5'>Linux</b>常用<b class='flag-5'>命令</b>/查找/搜索<b class='flag-5'>命令</b>/压缩/解压<b class='flag-5'>命令</b>网络<b class='flag-5'>命令</b>

    如何使用cp和rsync命令复制文件目录

    复制文件目录是在使用命令行时最常见的任务之一。在Linux,有两个命令用于
    的头像 发表于 12-07 17:39 6211次阅读

    何在Linux使用wc命令统计目录文件

    尽管不是很经常需要知道,但有时您需要找出指定目录中有多少个文件。例如,Linux系统inodes用完,则需要查找哪个目录包含成千上万个文件
    的头像 发表于 12-09 16:48 1467次阅读

    何在Linux使用rsync命令排除文件目录

    Rsync是一种快速同步命令行程序,用于在两个计算机之间同步文件文件夹。借助
    的头像 发表于 12-23 16:49 6315次阅读

    何在Linux使用du命令统计目录文件的大小

    du命令是`disk usage`的缩写,打印文件目录使用的磁盘空间量估算。这对于查找占用大量磁盘空间的文件目录非常有用。
    的头像 发表于 01-04 17:25 5186次阅读

    使用SCP和RsyncLinux中传输文件

    Linux 中,有时需要将文件从一台计算机传输到另一台计算机。为了完成这个任务,有两个主要的工具可以使用:SCP 和 Rsync。本文将介绍如何使用这两个工具在 Linux 中传输
    的头像 发表于 05-12 14:32 748次阅读

    恒讯科技分析:如何在Linux上使用rm命令删除文件目录

    本指南展示了如何在Linux中使用rm命令行删除文件目录和其他内容?
    的头像 发表于 06-09 17:02 855次阅读

    恒讯科技分析:如何使用cp命令Linux复制目录

    复制目录Linux中的一项基本任务,它允许我们复制目录、创建备份或在不同位置之间传输数据。在Linux
    的头像 发表于 06-26 17:14 469次阅读

    linux删除文件命令rm

    Linux系统中,可以使用rm命令来删除文件目录。该命令的功能是删除一个目录中的一个或多个
    的头像 发表于 11-13 16:42 429次阅读