写点什么

Linux 中比 cp 好用 10 倍的 rsync,你会用了吗

作者:高端章鱼哥
  • 2023-11-08
    福建
  • 本文字数:1637 字

    阅读完需:约 5 分钟

在日常工作和生活中,我们经常需要将文件从一个地方复制到另一个地方,无论是在本地机器之间进行文件同步,还是在不同服务器之间进行文件备份,都需要一种高效而可靠的工具来完成这个任务。rsync 命令就是这样一种备受推崇的工具,它能够在不同机器之间实现快速、安全的文件同步。本文将详细介绍 rsync 命令的基础用法,并提供相应的代码示例,帮助读者快速上手。

一、rsync 命令概述

rsync(remote sync)是一个功能强大的开源工具,用于在本地和远程系统之间进行文件同步和备份。其最大的特点是能够只传输发生变化的部分文件,而不是整个文件,从而大大提高了传输效率。此外,rsync 还支持压缩、加密等功能,使得文件同步更加灵活和安全。

二、rsync 安装

在开始使用 rsync 之前,我们需要先确保系统中已经安装了 rsync。对于大多数 Linux 发行版,rsync 通常已经预装或者可以通过包管理器进行安装。如果您使用的是 Mac 系统,可以通过 Homebrew 来进行安装。以下是在 Ubuntu 系统上安装 rsync 的命令示例:


$ sudo apt-get update$ sudo apt-get install rsync
复制代码

三、基本用法示例

3.1 本地文件同步

首先,我们将介绍如何在本地机器之间进行文件同步。假设我们有两个目录:源目录(source)和目标目录(destination)。要将源目录中的文件同步到目标目录,可以使用以下命令:


$ rsync -avh source/ destination/
复制代码


在上述命令中,-a 参数表示以归档模式进行同步,保持文件的属性和权限不变;-v 参数表示输出详细的同步过程信息;-h 参数表示以人类可读的方式显示文件大小。您可以根据实际需求调整参数。

3.2 远程文件同步

rsync 也支持在本地机器和远程机器之间进行文件同步。在进行远程同步之前,需要确保远程机器上已经安装了 rsync,并且可以通过 SSH 进行访问。


要将本地机器上的文件同步到远程机器,可以使用以下命令:


$ rsync -avh source/ user@remote:/path/to/destination/
复制代码


在上述命令中,user 是远程机器上的用户名,remote 是远程机器的地址,/path/to/destination/是目标目录的路径。通过 SSH 连接到远程机器时,rsync 会要求输入密码或者使用 SSH 密钥进行身份验证。

3.3 过滤文件和目录

有时候,我们希望在文件同步过程中排除某些文件或目录,以避免不必要的复制。rsync 提供了--exclude 和--exclude-from 参数来实现文件和目录的过滤


以下是一个示例,演示如何使用--exclude 参数来过滤文件:


$ rsync -avh --exclude='*.txt' source/ destination/
复制代码


上述命令中,--exclude='*.txt'表示排除所有.txt 文件。您可以根据实际需求修改过滤规则。

3.4 同步删除

如果源目录中的文件在目标目录中不存在,rsync 默认不会删除目标目录中的文件。如果希望在同步过程中删除目标目录中的文件,可以使用--delete 参数:


$ rsync -avh --delete source/ destination/
复制代码


上述命令中,--delete 参数表示在同步过程中删除目标目录中不存在的文件。

四、高级功能

除了基本的文件同步功能外,rsync 还提供了一些高级功能,使得文件同步更加灵活和可定制。

4.1 压缩传输

默认情况下,rsync 会对传输的数据进行压缩,以减少网络带宽的占用。如果希望禁用压缩,可以使用-z 参数:


$ rsync -avh -z source/ destination/
复制代码

4.2 加密传输

为了保护数据的安全性,rsync 支持通过 SSH 进行加密传输。在远程同步中,只需使用 SSH 连接进行传输即可。

4.3 部分文件传输

rsync 的一个重要特点是只传输发生变化的部分文件,而不是整个文件。这种增量传输的方式大大提高了传输效率。rsync 会根据文件的时间戳和内容来判断文件是否发生变化,只传输发生变化的部分。

4.4 带宽限制

如果您希望在进行文件同步时限制 rsync 使用的带宽,可以使用--bwlimit 参数。以下是一个示例:


$ rsync -avh --bwlimit=1000 source/ destination/
复制代码


上述命令中,--bwlimit=1000 表示限制带宽为 1000 KB/s。


通过本文的介绍,我们了解了 rsync 命令的基础用法。无论是在本地机器之间进行文件同步,还是在不同服务器之间进行文件备份,rsync 都是一个强大而灵活的工具。通过使用 rsync,我们可以轻松实现高效、安全的文件同步。希望本文对您学习和使用 rsync 命令有所帮助!

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
Linux中比cp好用10倍的rsync,你会用了吗_Linux_高端章鱼哥_InfoQ写作社区