视窗苹果电脑软件设置安全生产力Linux安卓性能配置苹果自定义设备管理iPhone设置 全部

如何使用rsync进行备份和同步

已编辑 2 几小时前 通过 ExtremeHow 编辑团队

备份命令行文件同步数据管理工具脚本安全存储传输

如何使用rsync进行备份和同步

翻译更新 2 几小时前

Rsync是一个强大的工具,可以用来创建备份并在不同系统之间同步文件。它是一个命令行工具,可以实现快速、高效的文件传输。通过使用增量编码,Rsync只传输源目录和目标目录之间的差异。由于其低带宽消耗,这使得它成为备份和同步的理想工具,特别是在网络连接上。

了解rsync的基本原理

Rsync可以用于在本地和远程主机上传输文件。rsync命令的基本语法是:

rsync [options] source destination

这里,source是您想要传输的文件的位置,destination是您想要移动到的位置。

安装

Rsync通常预装在大多数Linux发行版中。要检查它是否已安装,您可以输入:

rsync --version

如果Rsync未安装,您可以使用与操作系统相关的包管理器添加它。例如,在基于Debian的系统上,您可以使用:

sudo apt-get install rsync

在基于Red Hat的系统上,您可以使用:

sudo yum install rsync

rsync的基本用法

rsync的主要功能是文件和目录的同步。例如,要将所有文件从source_directory复制到destination_directory,您可以使用以下命令:

rsync -avzh /path/to/source_directory/ /path/to/destination_directory/

让我们分析此命令中使用的选项:

注意,source_directory/中的最后一个斜杠确保仅复制目录的内容,而不是目录本身。

通过SSH进行Rsync

Rsync最强大的功能之一是能够使用SSH在网络上同步文件。为保证数据传输的安全,SSH会对数据进行加密,以防止窃听。要在本地和远程系统之间同步目录,您可以使用:

rsync -avz -e "ssh" user@remote_host:/path/to/remote_directory/ /path/to/local_directory/

此命令使用-e选项指定远程shell程序(此情况下为SSH)。

同样地,要将文件从本地系统复制到远程服务器,请更改sourcedestination参数:

rsync -avz /path/to/local_directory/ user@remote_host:/path/to/remote_directory/

如果您的SSH使用不同的端口(非默认22),可以使用:

rsync -avz -e "ssh -p 2222" /path/to/local_directory/ user@remote_host:/path/to/remote_directory/

处理删除

在同步目录时,您希望目标目录准确反映源目录,包括删除。可以使用--delete选项完成此操作:

rsync -avz --delete /path/to/source_directory/ /path/to/destination_directory/

使用--delete,Rsync将删除目标中不存在于源的任何文件。

处理大文件集合

对于大文件或大量文件,Rsync可能需要较长时间才能运行。您可以通过使用&符号将Rsync作为后台进程运行来加速此过程。这样可以让您在其他任务中使用命令行:

rsync -avz /path/to/source/ /path/to/destination/ &

校验和节省时间

默认情况下,Rsync根据大小和修改时间等检查来决定是否传输文件。要强制根据内容差异进行传输,可以使用:

rsync -avzc /path/to/source/ /path/to/destination/

-c选项让Rsync执行校验和比较,尽管可能需要更长时间,但确保每个传输的文件都相同。

特定文件类型

您可以使用包括和排除选项告诉Rsync包括或排除特定文件类型。例如,要仅同步文本文件,您可以输入:

rsync -avz --include '*.txt' --exclude '*' /path/to/source/ /path/to/destination/

在这里,--include让Rsync只包含.txt文件,而--exclude让Rsync忽略其他所有内容。

备份文件进度日志

在备份操作中,了解哪些内容被传输以及何时传输可能很重要。Rsync提供了一个选项:

rsync -avz --log-file=rsync.log /path/to/source/ /path/to/destination/

此命令创建或追加日志到rsync.log文件。

高级用途

对于需要超出基本功能的用户,Rsync提供了高级选项。例如,您可以使用--bwlimit选项设置带宽限制,允许您设置传输的最大速度:

rsync -avz --bwlimit=1000 /path/to/source/ /path/to/destination/

这将带宽限制为1000 KB/s。

作为守护进程运行

Rsync可以作为守护进程运行,作为后台服务,大型设置或脚本驱动任务的客户端可以连接到它。要启用此功能,需要在rsyncd.conf文件中进行一些配置。例如:

[backup] path = /path/to/share comment = Backup Directory read only = no list = yes uid = root gid = root auth users = username secrets file = /path/to/rsyncd.secrets

在守护进程模式中,Rsync监听请求,无需SSH。然而,请确保使用防火墙和认证方法来保护此设置。

自动化

对于定期备份,可以在Linux中使用cron作业自动化Rsync。这确保备份在指定时间发生无需手动输入。例如,要设置每天凌晨2点的备份,请使用以下命令编辑crontab文件:

crontab -e

添加以下行:

0 2 * * * rsync -avz /path/to/source/ /path/to/destination/

此cron作业将在每天凌晨2点执行Rsync命令。

总结

Rsync是一个多功能工具,对于系统化的备份和同步任务是不可或缺的。使用适当的选项和配置,您可以自定义Rsync以满足几乎任何数据备份需求。它通过仅同步变化来执行增量备份,使其在时间和网络资源使用方面都很高效。开源性质和跨平台支持使Rsync成为自动化备份解决方案的理想选择。

如果你发现文章内容有误, 您可以


评论