Linux上使用rsync进行文件同步

Linux系统教程

Linux上使用rsync进行文件同步

2023-05-20 23:11


                                            




在Linux服务器之间进行文件同步是服务器管理中常见的操作。本文将介绍如何使用rsync进行Linux服务器文件同步。

简介

rsync是一个在Unix/Linux系统上用来同步文件和目录的工具,可以在两台主机之间通过网络传输进行同步,也可以在本地进行同步。优点是可以增量方式来同步文件,这意味着Rsync仅通过网络传输发生变化的文件内容。这样可以节省大量的网络带宽,并且可以快速同步大量的数据。

安装 rsync

一般情况下,Linux默认已经安装了Rsync,如果未安装,可以使用以下命令进行安装:

  1. $ sudo apt update
  2. $ sudo apt install rsync

rsync 基本使用

rsync命令用法简单,基本命令格式如下:

  1. rsync [option] source destination

其中,source表示源文件或者源目录,destination表示目标文件或目录。这里的“源”和“目标”不是在同一台机器上的目录,可以是另一台机器。

同步本地文件

假设我们在机器A上有一个目录“/data”需要同步到另一台机器B上,步骤如下:

  1. 在B机器上,创建和A机器上一样的目录。

    1. $ mkdir /data
  2. 在A机器上执行下面的命令,同步文件到B机器:

    1. $ rsync -/data user@remote:/data

    其中,-a 表示以递归和归档(archive)模式同步,可以保留文件的权限、所有者信息等。

    user表示远程机器的登录用户名,也可以使用root登录。remote表示远程机器的IP地址或者网络主机名。

同步远程文件

如果要同步远程机器上的文件,需要在命令中指定远程机器的IP或主机名,同步命令格式如下:

  1. rsync [option] user@remote:/source /destination

例如,将远程机器上的“/data”目录同步到本地“/data_rsync”目录下,可以使用以下命令:

  1. $ rsync -a user@remote:/data /data_rsync

使用rsync同步大文件

当同步大的文件时,可能会对网络带宽造成负担,可以通过rsync的–bwlimit参数来控制传输速度。如限制最大传输速度为200kBytes/s,可以使用如下命令进行同步:

  1. $ rsync --bwlimit=200 -/data user@remote:/data

使用 rsync 自动同步文件

我们可以定时执行rsync 自动同步文件,这可以用crontab完成。可以使用以下步骤将同步命令添加到crontab中自动执行:

  1. 打开crontab进行配置

    1. $ sudo crontab -e
  2. 在打开的文件底部添加以下内容

    1. 0 0 * * * /usr/bin/rsync ---delete /data user@remote:/data

    其中,0 0 * * * 表示在每天午夜凌晨0点进行同步,**/usr/bin/rsync表示rsync的可执行文件路径,-a表示以归档的方式同步,–delete表示删除多余的文件。

rsync 常用参数

rsync命令有很多参数,根据实际需求选择适当的参数。常用的参数有:

  1. -r, --recursive 递归处理
  2. -a, --archive 归档模式,同时保留所有文件特性,如权限
  3. 和时间属性
  4. -v, --verbose 详细模式输出
  5. -z, --compress 对备份的数据进行压缩处理
  6. --delete 删除目标端没有的源文件
  7. --progress 显示备份过程
  8. --exclude=file_name 排除某个文件
  9. --exclude-from=FILE 从指定的文件中读取排除列表
  10. --password-file 指定文件以获取文件。去掉任何可能泄露密码
  11. 的文件权限

总结

Rsync是一个强大的文件同步工具,在Linux服务器管理中应用广泛。通过rsync,我们可以快速高效地同步大量的文件和目录,也可以通过控制传输速度和删除多余文件等功能,实现更加灵活的操作。