rsync的搭建与使用

rsync是数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

已支持跨平台,可以在Windows与Linux间进行数据同步。

Ubuntu安装

sudo apt-get install rsync

Centos安装

yum install 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命令会根据源目录是否使用斜杠/,而又不同的处理方式。

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

常用功能及选项

记住最常用的几个即可,比如 -a、-v、-z、–delete 和 –exclude。

OPTION选项功能
-a这是归档模式,表示以递归方式传输文件,并保持所有属性,它等同于-r、-l、-p、-t、-g、-o、-D 选项。-a 选项后面可以跟一个 –no-OPTION,表示关闭 -r、-l、-p、-t、-g、-o、-D 中的某一个,比如-a –no-l 等同于 -r、-p、-t、-g、-o、-D 选项。
-r表示以递归模式处理子目录,它主要是针对目录来说的,如果单独传一个文件不需要加 -r 选项,但是传输目录时必须加。
-v表示打印一些信息,比如文件列表、文件数量等。
-l表示保留软连接。
-L表示像对待常规文件一样处理软连接。如果是 SRC 中有软连接文件,则加上该选项后,将会把软连接指向的目标文件复制到 DEST。
-p表示保持文件权限。
-o表示保持文件属主信息。
-g表示保持文件属组信息。
-D表示保持设备文件信息。
-t表示保持文件时间信息。
–delete删除只存在于目标目录、不存在于源目录的文件。
–exclude=PATTERN表示指定排除不需要传输的文件,等号后面跟文件名,可以是通配符模式(如 *.txt)。
–progress表示在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、 同步的文件传输速度等。
-u表示把 DEST 中比 SRC 还新的文件排除掉,不会覆盖。
-z加上该选项,将会在传输过程中压缩。
–password-file=FILE从FILE中得到密码

远程同步模式

rsync 默认使用 SSH 进行远程登录和数据传输。

将本地内容,同步到远程服务器

rsync  source/  username@remote_host_or_ip:destination

远程内容同步到本地

rsync  username@remote_host_or_ip:source/  destination

rsync 指定SSH端口

rsync -a -e "ssh -p port" source/  username@remote_host_or_ip:destination

配置文件

/etc/rsyncd.conf

# pid file 守护进程pid文件
# port 守护进程监听端口,可更改,由xinetd允许rsyncd时忽略此参数
#address 守护进程监听ip,由xinetd允许rsyncd时忽略此参数
pid file = /usr/local/var/run/rsyncd.pid
port = 873
address = 192.168.1.2
#rsyncd 守护进程运行系统用户全局配置,也可在具体的块中独立配置,
uid = root
gid = root
#允许 chroot,提升安全性,客户端连接模块,首先chroot到模块path参数指定的目录下
#chroot为yes时必须使用root权限,且不能备份path路径外的链接文件
use chroot = yes
#只读
read only = no
#只写
write only = no
#允许访问rsyncd服务的ip,ip端或者单独ip之间使用空格隔开
hosts allow = 192,168.0.1/255.255.255.0 198.162.145.1 10.0.1.0/255.255.255.0
#不允许访问rsyncd服务的ip,*是全部(不涵盖在hosts allow中声明的ip,注意和hosts allow的先后顺序)
hosts deny = *
#客户端最大连接数
max connections = 5

[data1]
#模块根目录,必须指定
path=/home/username
#是否允许列出模块里的内容
list=yes
#忽略错误
#ignore errors
#模块验证用户名称,可使用空格或者逗号隔开多个用户名
auth users = data1user
#模块验证密码文件 可放在全局配置里
secrets file=/etc/rsyncd/rsyncd.secrets
#注释
comment = some description about this moudle
#排除目录,多个之间使用空格隔开
exclude = test1/ test2/

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/6138

(0)
郭靖的头像郭靖
上一篇 2022年11月18日 下午4:27
下一篇 2022年11月19日 下午12:10

相关推荐

  • ansible基础用法

    今天需要同时对200+机器进行操作,使用ansible进行处理 首先使用的是ubuntu22.04的机器,一键安装ansible 安装完成后,需要对ansible.cfg配置文件进行修改,在当前目录下,新建 ansible.cfg 文件 配置文件完成后,需要创建hosts主机组,新建 hosts 文件 最后进行机器验证 这样就说明,你的ansible主机可以…

    2023年11月7日
    1.6K00
  • CentOS图形化界面和命令行界面的转化–超详细(Linux操作系统)

    对于我这样的小白来说,Linux系统的图形化界面更加简单,但是Linux命令行才是精髓,如何进行转化呢? 1、快捷键方式切换(较为简单) 图形化界面转化成命令行界面  ctrl+alt+F3 命令行界面转化为图形化界面 ctrl+alt+F1 2、命令行形式切换切换成命令行模式: systemctl set-default mu…

    2023年12月13日
    1.9K00
  • Git:合并多个commit 的高级技巧

    前言 在我们的日常项目开发中,git commit -m 无疑是使用最频繁的指令,这也造成了大量的commit 在我们的分支上。这样常常会带来分支过长、版本过多的问题。 正文 想要解决这个问题,我们通常会对commit 进行合并。 当我们发现两个commit 或多个commit 存在很强的关联性、并且几个commit 加起来也可以成为一个完整的描述的时候,就…

    2023年3月15日
    2.1K00
  • Docker部署MinIO对象存储服务器结合Cpolar实现远程访问

    前言MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼容Amazon S3 API,因此可以与现有的S3工具和库无缝集成。MinIO的设计目标是高性能、高可用性和可扩展性。它可以在分布式模式下运行,以满足不同规模的存储需求。 MinIO是一个开源的软件,可以免费使用,还可以在普通硬件上运行…

    2023年12月20日
    1.3K00
  • nmcli命令详解

    以下是nmcli命令的一些常用选项和用法: 1)修改网卡名称 2)添加网卡 3)启动或停止网卡 4)设置网卡获取IP模式 使用 nmcli 来设置网卡为静态IP ,可以使用以下命令: 使用nmcli命令将网卡eth0模式设置为dhcp

    2023年10月10日
    1.7K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信