Rsync

rsync原理图

1. rsync概述

rsync常用的传输工具,多台服务器之间传输数据,具备全量同步和增量同步
备份服务: rsync+定时任务 实现定时备份
官网: 传送门 http://rsync.samba.org
端口: 873
rsync运行模式: c/s client(客户端)/server(服务端) rsync守护进程模式

2. rsync应用场景

.定时任务+rsync(服务)
https://www.processon.com/view/link/608624a50791290af3353665

3. 部署rsync服务

3.1服务端backup

第一个历程:安装部署软件程序

#rpm -qa|grep rsync
yum install -y rsync 

第二个历程:创建管理备份目录以及数据用户信息

useradd rsync -M -s /sbin/nologin

第二个历程:创建备份数据目录

mkdir /backup
chown rsync.rsync /backup/ 

第三个历程:创建用户列表文件

echo 'rsync_backup:oldboy123' >/etc/rsync.password
chmod 600 /etc/rsync.password

第四个历程:编写配置文件

#vi /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup

-----------------------------架构备份服务文件配置讲解---------------------------------------------------------
/etc/rsyncd.conf
uid = rsync --- 指定rsync服务备份目录或数据信息管理用户信息
gid = rsync --- 指定rsync服务备份目录或数据信息管理用户组信息
port = 873 --- 指定服务程序端口信息
fake super = yes --- 将uid指令指定用户可以伪装为管理员用户
use chroot = no --- 提高数据备份安全性,前提需要将备份目录权限与uid信息设置root用户 ???鸡肋
max connections = 200 --- 设置最大连接数
timeout = 300 --- 设置连接会话超时时间(闲置状态)
pid file = /var/run/rsyncd.pid --- 记录服务程序pid文件(进程号文件)
lock file = /var/run/rsync.lock --- 服务程序锁文件(开发-网络编程)
log file = /var/log/rsyncd.log --- 服务程序日志文件
ignore errors --- 尽量忽略简单异常错误
read only = false --- 指定备份数据的目录是否是只读状态 
list = false --- 列表显示备份服务模块信息???
hosts allow = 172.16.1.0/24 --- 白名单 允许哪个客户端主机地址进行访问 
hosts deny = 0.0.0.0/32 --- 黑名单 允许哪个客户端主机地址不能访问 
auth users = rsync_backup --- 指定可以进行认证用户信息(不需要在系统中创建)
secrets file = /etc/rsync.password --- 用户密码文件(权限600 属主属组 root)
[backup] --- 模块信息 模块下面的信息成为局部配置信息
comment = "实现运维人员备份数据" --- 模块注释说明
path = /backup --- 数据备份目录
[devdata]
comment = "实现开发人员备份数据"
path = /devdata

第五个历程:启动服务程序

systemctl start rsyncd

ps -ef|grep rsync 查询程序是否启动
netstat -lntup|grep rsync 查询程序是否启动

3.2客户端部署过程

交互式实现数据传递过程:

rsync -avz /home/oldboy/oldboy.txt rsync_backup@172.16.1.41::backup
#此时会提示输入密码
oldboy123

免交互实现数据传递过程:

两种方式:

方式一:在客户端创建一个密码文件(主要使用)

echo oldboy123 >/etc/rsync.password

chmod 600 /etc/rsync.password
##免密传输:--password-file=/etc/rsync.password
rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

方式二:配置环境变量实现免交互

RSYNC_PASSWORD --- 设置环境变量实现免交互

echo 'export RSYNC_PASSWORD="oldboy123"' >> /etc/profile

rsync -avz /etc/selinux/config rsync_backup@172.16.1.41::backup

参数信息总结:-avz

-v, --verbose increase verbosity
显示传输过程信息
-z, --compress compress file data during the transfer
文件在传输时做压缩处理
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
执行-a参数等价于执行-rlptgoD
-r, --recursive recurse into directories
进行递归复制数据信息(可以实现目录传输)
-l, --links copy symlinks as symlinks 没有任何作用
可以复制软链接文件 
-L, --copy-links transform symlink into referent file/dir 
将链接文件所执行源文件信息做备份
-p, --perms preserve permissions
维持权限属性信息不变 
-t, --times preserve modification times
维持文件修改时间属性不变
-o, --owner preserve owner (super-user only) 
维持文件属主信息不变
-g, --group preserve group
维持文件属组信息不变
-D same as --devices --specials 
复制传输设备文件信息可以保持设备文件属性信息不变 
-P same as --partial --progress 
显示数据传输进度信息
--belete 实现无差异数据同步
--bwlimit 实现数据传输限速功能 KBps
--exclude 实现数据备份排除功能
--exclude-form 实现数据备份排除功能
--password-file 读取密码文件实现免交互传输数据
--port 指定访问备份服务端口信息

4 补充说明

4.1 补充:rsyncd.conf文件中全局配置和局部配置

    全局配置:模块以上的配置信息 影响全部模块
    局部配置:模块以下的配置信息 只影响当前模块  
    总结:局部配置优先于全局配置

4.2 补充:如何保证备份的数据属主和属组信息不变

    4.2.1 方法一:增加模块
     不同用户向不同模块传输数据

     4.2.2 方法二:修改配置文件uid信息
     uid = root
     gid = root
     #fake super = yes
     备份目录属主属组需要修改为 root权限

4.3. rsync守护进程企业应用

1)守护进程多模块功能配置

开发人员
运维人员
数据库人员
创建多模块 --- 创建多模块对应目录并授权 --- 重启服务
    [backup]
    comment = "backup dir by oldboy"
    path = /backup
    [devdir]
    path = /devdir
    [dbdir]
    path = /dbdir

2)守护进程的排除功能实践

    环境准备:
[root@nfs01 ~]# mkdir /oldboy_dir/oldboy{01..03} -p
    [root@nfs01 ~]# touch /oldboy_dir/oldboy{01..03}/{a..c}.txt
    [root@nfs01 ~]# tree /oldboy_dir/
    /oldboy_dir/
    ├── oldboy01
    │?? ├── a.txt
    │?? ├── b.txt
    │?? └── c.txt
    ├── oldboy02
    │?? ├── a.txt
    │?? ├── b.txt
    │?? └── c.txt
    └── oldboy03
        ├── a.txt
        ├── b.txt
        └── c.txt
    需求:
    01. 排除oldboy01目录不要传输备份,排除oldboy03目录中a.txt文件不要传输备份

`实现需求:--exclude=PATTERN`

    [root@nfs01 ~]# rsync -avz /oldboy_dir/ --exclude=oldboy01 --exclude=oldboy03/a.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    sending incremental file list
    ./
    oldboy02/
    oldboy02/a.txt
    oldboy02/b.txt
    oldboy02/c.txt
    oldboy03/
    oldboy03/b.txt
    oldboy03/c.txt
    
    sent 381 bytes  received 134 bytes  1,030.00 bytes/sec
    total size is 0  speedup is 0.00
    总结:排除的路径信息,需要编写为指定目录的相对路径

`常见错误`
    1. 排除参数后面数据信息,不能写绝对路径
    2. 排除参数后面数据信息,不能写相对路径
    
    02. 排除的数据量比较大,有多个目录,多个文件都要排除
    vim exlude.txt 
    oldboy01
    oldboy03/a.txt
`错误示范:
[root@nfs01 oldboy_dir]# rsync -avz /oldboy_dir/ --exclude-from=/oldboy_dir/exclude.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    sending incremental file list
    ./
    exclude.txt
    oldboy02/
    oldboy02/a.txt
    oldboy02/b.txt
    oldboy02/c.txt
    oldboy03/
    oldboy03/b.txt
    oldboy03/c.txt
    
    sent 482 bytes  received 157 bytes  1,278.00 bytes/sec
    total size is 24  speedup is 0.04`
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容