Rsync的备份案例

提问的方法:

1.我现在在做什么?

测试rsync客户端连接服务端

2.我遇到了什么问题

截图

3.我尝试了什么解决办法?

关闭firewalld关闭selinux ping 了对应得主机


1.有关rsync守护进程得解释说明

问题1.rsync用户与rsync_backup用户有什么区别?

1.1 rsync用户是rsyncd进程运行得用户身份

1.2rsync_backup是rsync认证时需要使用得虚拟用户

问题2.rsync.passwd与rsync.pass有什么关系?

2.1 rsync.passwd该文件主要定义虚拟用户名称以及 虚拟用户对应得密码(服务端才能定义)

2.2 rsync.pass其实可以没有,也可以是文件 因为这里面只有密码便于我们向服务器推送文件是不需要密码(客户端,只能有密码,不能有用户名) 或者 设定环境变量 RSYNC_PASSWORD

问题3.为什么写入到backup中的文件或目录属主和属组都是rsync呢

3.1客户端推送文件至服务端,服务端需要以该进程的用户身份将文件存储下来,所以属主和属组就发生了变化( 变化为了 rsync该进程的运行用户身份)

问题4什么时候使用守护进程模式,什么时候使用远程传输模式

4.1守护进程可以设置定时任务进行,这种常用于定期备份

4.2远程守护方式主要用于用户临时操作

用户名称:

​ 远程传输: 系统用户 root

​ 守护进程:虚拟用户 rsync_backup

拷贝资源:

​ 远程传输:可以是系统中任何路径下的文件 使用方式 :

​ 守护传输:固定模块下的资源 使用方式::

今日内容

已知3台服务器主机名分别为web01、backup、 nfs 主机信息见下表

角色 外网(NAT) 内网IP(LAN) 主机名称
WEB eth0:10.0.0.7 eth1:172.16.1.7 web01
NFS eth0:10.0.0.31 eth1:172.16.1.31 nfs
Rsync eth0:10.0.0.41 eth1:172.16.1.41 backup

客户端需求
1.客户端提前准备存放的备份的目录,目录规则如下:/backup/nfs_172.16.1.31_2018-09-02
2.客户端在本地打包备份(系统配置文件、应用配置等)拷贝至/backup/nfs_172.16.1.31_2018-09-02
3.客户端最后将备份的数据进行推送至备份服务器
4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间
5.客户端每天凌晨1点定时执行该脚本

1.我们需要备份什么

/etc/rc.local /etc/fstab /etc/hosts

/var/spool/cron/ /etc/firewalld /server/scripts

2.我们要备份到哪里去

/backup目录

该主机的主机名称_该主机的IP地址 _今天的日期

3.我要推送到哪去

备份服务器 172.16.1.41 backup模块

客户端类似于:散货———装车———运输———下一个仓库点

1.我们要准备一个目录

[root@nfs ~]# mkdir -p  "/backup/$(hostname)_$(ifconfig eth1 | awk '/inet / {print $2}')_$(date +%F)"

2.将文件备份到该目录中

[root@nfs ~]# cp -r /etc/rc.local /etc/fstab  /etc/hosts  /backup/nfs_172.16.1.31_2020-04-15/

3.使用rsync命令进行运输

[root@nfs ~]#rsync -avz /backup/ rsync_back@172.16.1.41::backup

4.保留最近7天

[root@nfs ~] find /backup -type d -mtiem +7 |xargs -rf

5.编写定时任务

6.脚本文件

[root@backup ~]# vim /scripts/clinet_push_data.sh
#!/usr/bin/bash
#客户端nfs服务器推送备份的数据到backup服务器
0.将目录需要用到的主机名IP地址日期定义为变量
exprot PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Host=$(hostname)
Addr=$(ifconfig eth1 |awk '/inte / {print $2}')
Time=$(date +%F)
Path=/backup
DirName="{$Host_$Addr_$Time}"
#1.我们需要准备一个目录
[root@nfs ~]# mkdir -p "$Path/$DirName"
#2.将文件备份到该目录
[root@nfs ~]#cd / && \
#[root@nfs ~]# cp -r /etc/rc.local/etcfstab /etc/hosts $Path$Addr
[root@nfs ~]# tar czf $Path/DirName/sys.tar.gz etc/fstab etc/hosts && \
[root@nfs ~]# tar czf $Path/DirName/other.tar.gz etc/scripts && \
[root@nfs ~]# md5sum $Path/DirName/*.tar.gz > $Path/DirName/check_flag_$Time
#3.使用rsync命令进行传输
export RSYNC_PASSWORD=123456
rsync -avz $Path/ rsync_backup@172.16.1.41::backup
#4.保留本地7天的数据
find $Path -type d -mtime +7 |xargs rm -rf

服务端需求

1.服务端部署rsync,用于接收客户端推送过来的备份数据
https://www.jianshu.com/writer#/notebooks/45118667/notes/67186911

2.服务端需要每天校验客户端推送过来的数据是否完整

3.服务端需要将每天的校验结果通知给管理员

根据服务端的需求这就需要我们优化客户端的脚本

将散货————打包————贴上封条—————推送给服务端

2.服务端

更具客户端推送的封条——校验数据是否一致,最后通知管理员

[root@backup ~]# vim /scripts/check_clint_data.sh
#!/usr/bin/bash
#检查客户端推送的数据 by xiaolai
#0.将目录需要的主机名 ip 时间定义为变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Time=$(date +%F)
Path=/backup
#1.找到当天的check_flag文件,校验数据是否完整并将校验的结果存储至某个文件
find /backup/nfs/ -type f -name check_flag_$Time |xargs md5sum -c >$Path/result_$Time
mail -s "Rsync Bachup %Time" 1026044751@qq.com < $Path/result_$Time
#4.服务端仅保留6个月的备份数据,其余全部删除
find $Path -type d -mtime +180 |xargs rm-rf                                                             

2.1在服务端配置发件人邮箱账号密码

[root@backup ~]# vim /etc/mail.rc
set from=123@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=123@qq.com
set smtp-auth-password=#客户端授权码zaxgohuyknnrbdgs
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/

3.如何快速备份一台新的机器

[root@web01 ~]# rsync -azv root@172.16.1.31:/scripts/clinet_push_data.sh /scripts/
[root@web01 ~]#chmod +x /scripts/clinet_push_data.sh
[root@web01 ~]# sh /scripts/clinet_push_data.sh
然后给所有的客户端配置定时任务
给服务端配置定时任务

附:完整的脚本文件

客户端的脚本文件

[root@nfs ~]# cat /scripts/clinet_push_data.sh 
#!/usr/bin/bash
# 客户端推送备份的数据至备份服务器   by oldxu
#0.将目录需要用的主机名,IP,时间,定义为变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Host=$(hostname)
Addr=$(ifconfig eth1 | awk '/inet / {print $2}')
Time=$(date +%F)
Path=/backup
DirName="${Host}_${Addr}_${Time}"
#1.我们要准备一个目录
mkdir -p  "$Path/$DirName"
#2.将文件备份到该目录中
cd / && \
tar czf $Path/$DirName/sys.tar.gz etc/rc.local etc/fstab && \
tar czf $Path/$DirName/other.tar.gz etc/hosts scripts && \
md5sum $Path/$DirName/*.tar.gz > $Path/$DirName/check_flag_$Time
#3.使用rsync命令进行运输
export RSYNC_PASSWORD=123456
rsync -avz $Path/ rsync_backup@172.16.1.41::backup
#4.保留本地7天的数据
find $Path  -type d -mtime +7  | xargs rm -rf

服务端的脚本文件

[root@backup ~]# cat /scripts/check_clinet_data.sh 
#!/usr/bin/bash
# 检查客户端推送的数据   by oldxu

#0.将目录需要用的主机名,IP,时间,定义为变量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Time=$(date +%F)
Path=/backup


#1.找到当天的check_flag文件,校验数据是否是完整的,并且将校验结果存储至某个文件中
find $Path/ -name "check_flag_$Time"|xargs md5sum -c > $Path/result_$Time

#3.将校验的结果通知给管理人员
mail -s "Rsync Backup $Time" 1026044760@qq.com <$Path/result_$Time


#4.服务端仅保留6个月的备份数据,其余的全部删除
find $Path  -type d -mtime +180  | xargs rm -rf

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容