(1).实验环境与目标

  源主机:youxi1  192.168.5.101

  目标主机:youxi2  192.168.5.102

  目标:将源主机youxi1的数据备份到youxi2上。

  rsync是C/S模式,默认端口873

(2).rsync命令常用格式与常用选项、

常用格式:

  rsync [OPTION] SRC [USER@]HOST:DEST  //源主机执行的推送数据命令,需要目的主机执行守护进程

  rsync [OPTION] SRC [USER@]HOST::DEST  //与上一条命令类似,但使用的是非系统用户,并且需要配置文件

  rsync [OPTION] [USER@]HOST:SRC [DEST]  //目的主机执行的拉取数据命令,需要源主机执行守护进程

  rsync [OPTION] [USER@]HOST::SRC [DEST]  //与上一条命令类似,但使用的是非系统用户,并且需要配置文件

常用选项:

-a,--archive 存档模式,相当于-rlptgoD
-z,--compress 传输过程中压缩数据
-v,--verbose 复杂输出信息
--delete 删除目标中存在,而源中不存在的文件
--password-file=FILE 从FILE中读取密码

  注意:-z选项适合杂碎文件的传输,如果是单个大文件传输并不适合使用此选项

(3).实验

1)检查是否安装了rsync和xinetd

[root@youxi2 ~]# yum list installed | grep xinetd
xinetd.x86_64 2:2.3.15-13.el7 @base
[root@youxi2 ~]# yum list installed | grep rsync
rsync.x86_64 3.1.2-6.el7_6.1 @updates

  如果以上命令没有输出结果,那么请使用yum -y install xinetd rsync安装两个程序,并systemctl enable [服务名]设置为开机自启。

2)两台主机上创建同名用户,密码可以不一样

  在主机youxi1上添加rsync1用户,密码为101101

[root@youxi1 ~]# useradd rsync1
[root@youxi1 ~]# echo "101101" | passwd --stdin rsync1
更改用户 rsync1 的密码 。
passwd:所有的身份验证令牌已经成功更新。

  在主机youxi2上添加rsync1用户,密码为102102

[root@youxi2 ~]# useradd rsync1
[root@youxi2 ~]# echo "rsync1:102102" | chpasswd

3)在主机youxi1上创建源文件夹,并给rsync1添加权限

[root@youxi1 ~]# mkdir -p /www/html
[root@youxi1 ~]# setfacl -m u:rsync1:rwx /www/html  //目录设置ACL权限,如果存在文件或目录,可以使用-R选项遍历赋权
[root@youxi1 ~]# setfacl -m d:u:rsync1:rwx /www/html  //目录设置默认ACL权限,新建的文件或目录将继承默认ACL权限
[root@youxi1 ~]# getfacl /www/html
getfacl: Removing leading '/' from absolute path names
# file: www/html
# owner: root
# group: root
user::rwx
user:rsync1:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:rsync1:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

  拷贝一些数据作为测试

[root@youxi1 ~]# cp -r /var/* /www/html/
[root@youxi1 ~]# ls /www/html/
adm crash empty gopher lib lock mail opt run tmp
cache db games kerberos local log nis preserve spool yp

4)在主机youxi2上创建目的文件夹

[root@youxi2 ~]# mkdir -p /backup/www/html
[root@youxi2 ~]# chown rsync1:rsync1 /backup/www/html/
[root@youxi2 ~]# ls -ld /backup/www/html/
drwxr-xr-x 2 rsync1 rsync1 6 5月 15 11:16 /backup/www/html/

5)从主机youxi1上将数据推送到主机youxi2上

  推送数据,命令会在源主机youxi1上执行,那么相应的需要目的主机youxi2监听。

  目的主机youxi2执行监听(守护进程)

[root@youxi2 ~]# rsync --daemon
[root@youxi2 ~]# netstat -antup | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1824/rsync
tcp6 0 0 :::873 :::* LISTEN 1824/rsync

  源主机youxi1执行推送命令

[root@youxi1 ~]# rsync -avz /www/html/ rsync1@192.168.5.102:/backup/www/html/
rsync1@192.168.5.102's password:

  最后到目的主机youxi2上查看是否成功

[root@youxi2 ~]# ls /backup/www/html/
adm crash empty gopher lib lock mail opt run tmp
cache db games kerberos local log nis preserve spool yp

6)当然也可以在主机youxi2上拉取youxi1上的数据

  拉取数据,命令会在目的主机youxi2上执行,那么相应的需要源主机youxi1监听

  源主机youxi1执行监听(守护进程)

[root@youxi1 ~]# rsync --daemon
[root@youxi1 ~]# netstat -antup | grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1947/rsync
tcp6 0 0 :::873 :::* LISTEN 1947/rsync

  目的主机youxi2执行拉取命令

[root@youxi2 ~]# rsync -avz rsync1@192.168.5.101:/www/html/ /backup/www/html/
rsync1@192.168.5.101's password:

  最后查看目的主机youxi2上是否成功

[root@youxi2 ~]# ls /backup/www/html/
adm crash empty gopher lib lock mail opt run tmp
cache db games kerberos local log nis preserve spool yp

(4).使用非系统用户备份数据

1)配置文件说明

  rsync的配置文件是/etc/rsyncd.conf,在执行rsync守护进程时调用。配置文件内分为全局参数和模块参数。

  常见全局参数:

port 指定端口号,默认873。
uid 指定传输文件时守护进程应该具有的uid,默认为nobody。配合gid可以确定访问权限。
gid 指定传输文件时守护进程应该具有的gid,默认为nobody。
max connections 指定最大连接数,默认为0,也就是没有限制。
lock file 指定支持max connections参数的锁文件,默认为/var/run/rsyncd.lock。
motd file 指定提示文件,连接时显示文件内容给连接者,默认没有。
log file 指定rsync的日志文件,而不将日志发送给syslog。
pid file 指定rsync的pid文件,一般指定为/var/run/rsyncd.pid,存放进程ID的文件位置。
hosts allow 指定允许同步的客户机地址,可以是IP地址也可以是网段

  常见模块参数:

comment 对模块的描述,默认没有。
path 指定提供给模块的目录,必须指定。
read only 如果值是yes表示只允许下载,no既可以加载也可以上传
exclude 指定多个由空格隔开的文件或目录,不上传或下载(即不可访问),相当于命令中的--exclude=PATTERN或-f,--filter=RULE。
exclude from从指定文件中读取exclude文件或目录列表,换行符分隔。
include 指定不排除符合要求的文件或目录,相当于命令中的--include=PATTERN。
include from从指定文件读取include文件或目录列表,换行符分隔。
auth users 指定允许连接该模块的用户名列表,用空格或逗号分隔,与系统用户无关。用户名和密码以明文方式存在在secrets file参数的文件中。
secrets file 指定包含“username:password”对的文件,换行符分隔,只有auth users参数被指定,才生效。
hosts allow 指定允许同步的客户机地址,可以是IP地址也可以是网段
list 设定当请求使用模块列表时,该模块是否被列出。false隐藏,默认值为true显示
timeout 超时时间,默认为0,没有超时时间。理想数值600。

2)使用非系统用户从源主机youxi1上将数据推送到目标主机youxi2上

  在目标主机youxi2上配置rsync.conf

[root@youxi2 ~]# cat /etc/rsyncd.conf
uid = root  //运行进程的用户
gid = root  //运行进程的组
address = 192.168.5.102  //监听地址
port = 873  //监听端口号
hosts allow = 192.168.5.101/24  //允许同步的IP地址
use chroot = yes  //是否锁定家目录,rsync被黑后,黑客无法在rsync运行的家目录之外创建文件。
max connections = 5  //最大连接数
pid file = /var/run/rsyncd.pid  //进程ID存放文件,自动生成
lock file = /var/run/rsync.lock  //max connections参数的锁文件
log file = /var/log/rsyncd.log  //日志文件位置
motd file = /etc/rsyncd.motd  //提示信息存放文件位置
[backupwwwhtml]  //模块名
path = /backup/www/html  //模块运行路径
comment = backup /www/html/  //描述
read only = false  //上传下载权限
list = yes  //允许查看模块信息
auth users = rsync2  //非系统用户名
secrets file = /etc/rsync.passwd  //存放密码文件

  在目标主机youxi2上创建密码文件,并限制权限

[root@youxi2 ~]# cat /etc/rsync.passwd
rsync2:102102
[root@youxi2 ~]# chmod 600 /etc/rsync.passwd

  启动rsync的守护进程,并指定使用/etc/rsyncd.conf配置文件

[root@youxi2 ~]# rsync --daemon --config=/etc/rsyncd.conf
[root@youxi2 ~]# netstat -antup | grep rsync
tcp 0 0 192.168.5.102:873 0.0.0.0:* LISTEN 1384/rsync

  在目标主机youxi2上添加端口号

[root@youxi2 sysconfig]# firewall-cmd --permanent --zone=public --add-port=873/tcp
success
[root@youxi2 sysconfig]# firewall-cmd reload
success

  最后在源主机youxi1上执行推送命令

[root@youxi1 ~]# rsync -avz /www/html/ rsync2@192.168.5.102::backupwwwhtml

Password:

3)使用非系统用户在目标主机youxi2上拉取源主机youxi1的数据

  在源主机youxi1上配置rsync.conf

[root@youxi1 ~]# cat /etc/rsyncd.conf
uid = root
gid = root
address = 192.168.5.101
port = 873
hosts allow = 192.168.5.102/24
use chroot = yes
max connections = 5
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
motd file = /etc/rsyncd.motd
[backup]
path = /www/html
comment = backup /www/html
read only = no
list = yes
auth users = rsync3
secrets file = /etc/rsync.passwd

  在源主机youxi1上创建密码文件,并限制权限

[root@youxi1 ~]# cat /etc/rsync.passwd
rsync3:101101
[root@youxi1 ~]# chmod 600 /etc/rsync.passwd

  启动rsync的守护进程,并读取配置文件/etc/rsyncd.conf

[root@youxi1 ~]# rsync --daemon --config=/etc/rsyncd.conf
[root@youxi1 ~]# netstat -antup | grep rsync
tcp 0 0 192.168.5.101:873 0.0.0.0:* LISTEN 2188/rsync

  在源主机youxi1上添加端口

[root@youxi1 ~]# firewall-cmd --permanent --zone=public --add-port=873/tcp
success
[root@youxi1 ~]# firewall-cmd --reload
success

  在目标主机youxi2上执行拉取命令

[root@youxi2 ~]# rsync -avz rsync3@192.168.5.101::backup /backup/www/html/

Password:

  注意:如果不想每次备份数据都输入一次命令,或需要进行定时计划任务,可以使用--password-file=FILE选项,将密码保存到文件中使用选项调用。

使用rsync备份数据的更多相关文章

  1. 本文讲述下windows下使用rsync备份数据

    本文讲述下windows下使用rsync备份数据 需要使用的软件如下: 环境需求: 上海monitor上跑有定时任务计划备份线上数据库,现在需要把上海monitor上的备份数据拉回到179.12数据回 ...

  2. rsync命令(同步/备份数据)

    rsync命令rsync命令是一个远程数据同步工具,可通过 lam/wan快速同步多台主机间的文件.rsync使用所谓的 "rsync算法"来使用本地和远程两个主机之间的文件达到同 ...

  3. rsync实现数据备份

    rsync实现数据备份 1.简介 rsync(remote synchronization)是一款开源的,快速的,多功能的,可实现全量和增量的的本地或远程数据同步备份的优秀工具. 2.功能 scp.c ...

  4. rsync用于数据迁移/备份的几个细节

    上周我们的一个GitLab服务频繁出现web页面卡死问题,得重启虚拟机才可恢复,但重启之后没多久又会卡死.后来发现是虚拟机的磁盘大小超过了2T,而虚拟机管理那层的文件系统是ext3,最大单文件只能支持 ...

  5. Linux系统备份还原工具4(rsync/远程数据同步工具)

    rsync即是能备份系统也是数据同步的工具. 在Jenkins上可以使用rsync结合SSH的免密登录做数据同步和分发.这样一来可以达到部署全命令化,不需要依赖任何插件去实现. 命令参考:http:/ ...

  6. Linux Rsync备份服务介绍及部署守护进程模式

    rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份工具 在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输 ...

  7. Rsync备份功能总结

    备份服务笔记====================================================================== Rsync是一款开源的.快速的.多功能的.可实 ...

  8. Linux中rsync备份服务部署

    rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份工具 在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输 ...

  9. Linux运维: Rsync同步数据(ubuntu16.04+windows10)

    rsync同步数据 -环境:Linux (ubuntu16.04) + windows10 Linux: 安装 sudo apt-get install rsync rsync --version 查 ...

随机推荐

  1. FreeRTOS编程风格

    数据类型 基本使用的是标准C里面的数据类型,但是针对不同的处理器,对标准C的数据类型又进行了重定义: 在FreeRTOS中详细的数据类型重定义在portmacro.h这个文件中,具体如下: /* Ty ...

  2. 【shell】ping加时间戳回复

    ping 192.168.2.1 -c 10 | awk '{ print $0"\t" strftime("%H:%M:%S",systime()) } ' ...

  3. 用js刷剑指offer(旋转数组的最小数字)

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个 ...

  4. Java基础 继承的方式创建多线程 / 线程模拟模拟火车站开启三个窗口售票

    继承的方式创建多线程 笔记: /**继承的方式创建多线程 * 线程的创建方法: * 1.创建一个继承于Thread 的子类 * 2.重写Thread类的run()方法 ,方法内实现此子线程 要完成的功 ...

  5. 大数据之路week02 List集合的子类

    1:List集合的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector: 底层数据结构是数组,查询快,增删慢. 线程安 ...

  6. post和get的在测试眼里的区别大概就是post比get安全吧……

    get将请求数据放在url中,而post将请求数据放在request body中 http://www.cnblogs.com/logsharing/p/8448446.html

  7. 开发中少不了的Fun -- 前端本地存储

    存储sessionStorage function setSessionStore (name, content) { if (!name) return if (typeof content !== ...

  8. Vulkan 02

    https://www.imgtec.com/blog/vulkan-high-efficiency-on-mobile/ vulkan性能上的优势 降低CPU开销 drawcall上限数量增加 Ho ...

  9. Why GPU Program is expensive in CPU

    对于非morden API这部分开销比较大的原因 1. state validation -验证state API 调用的合法性  CPU开销 -encode API state 到hardware ...

  10. Java Part 001( 02_01_理解面向对象 )

    Java完全支持面向对象的三个基本特征: 继承.封装.多态 面向对象的方式实际上由OOA(面向对象分析).OOD(面向对象设计).OOP(面向对象编程)三个部分有机组成 目前业界统一采用UML(统一建 ...