Day33
作者:方维超
归档:课堂笔记
时间:2019/4/16
老男孩教育教学核心思想6重:重目标、重思路、重方法、重实践、重习惯、重总结
学无止境,老男孩教育成就你人生的起点!
目录
一、 rsync 扩展功能
二、 rsync企业级应用经验
- rsync排错思路
1.1 rsync服务端排错思路
1.2 rsync服务端常见报错整理
- rsync复制工具优缺点
三、 rsync服务安全
利用软件自身参数实现安全复制
配置防火墙
四、 rsync企业常用工作场景
服务器之间数据备份(手工+定时任务)
两台服务器之间实时数据备份(定时任务)
五、 rsync企业级全网备份项目案例介绍与实践</w:sdt>
rsync扩展功能
实践排除复制:
NFS01:
[root@nfs01 ~]# mkdir /data -p
[root@nfs01 ~]# cd /data
[root@nfs01 /data]# touch {a..d}
[root@nfs01 /data]# ls
a b c d
--exclude 排除参数
例:排除 a b
[root@nfs01 /data]# rsync -avz /data/ --exclude=a --exclude=b rsync_backup@172.16.1.41::backup
sending incremental file list
./
c
d
排除1到4
[root@nfs01 /data]# touch {1..5}
[root@nfs01 /data]# rsync -avz /data/ --exclude={1..4} rsync_backup@172.16.1.41::backup
sending incremental file list
./
5
a
b
非连续性排除
[root@nfs01 /data]# rsync -avz /data/ --exclude={1,3,a} rsync_backup@172.16.1.41::backup
sending incremental file list
2
4
--exclude-from 从文件排除
[root@nfs01 /data]# rsync -avz /data/ --exclude-from=./paichu.txt rsync_backup@172.16.1.41::backup
sending incremental file list
./
16
17
18
19
20
paichu.txt
实践删除式复制:
rsync作为镜像,相当于raid1,让两台服务器目录保持一致。
--delete 让两台服务器目录保持一致
推送:
rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup
本地目录有啥,远端就有啥。
注意:远端目录是不是东西更多,多了东西会被删除。提前备份backup对应的目录。
rsync -avz --delete rsync_backup@172.16.1.41::backup /data/
远端有啥。本地目录就有啥,注意本地/data目录。把/data改成根。提前注意备份本地/data
-partial 支持大文件断点续传
--bwlimit=KBPS 限速。
企业案例:
某上市公司,白天高峰期某DBA人员从数据库服务器通过rsync将上百GB数据复制到备份服务器,导致数据库库服务器带宽占满,造成用户无法访问网站的悲剧。其实可以利用rsync限速功能,将复制速度限制在剩余带宽的1/3或者1/2,可能就不会出现故障了
第一:流量低谷
第二:限速传输
1)最简单的实现,可以在配置文件结尾加如下内容(特殊底纹部分):
[root@backup ~]# cat /etc/rsyncd.conf
#rsync_config_______________start
#created by oldboy
#site: http://www.oldboyedu.com
uid = rsync
gid = rsync
use chroot = no
fake super = yes
max connections = 200
timeout = 600
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 = welcome to oldboyedu backup.
path = /backup/
[data] #<==新模块。 path = /data/ #<==新备份目录。 #除了增加以上两行外,读者也可以设定更多的独立配置参数,例如:独立虚拟用户,独立密码文件等。
2)建立目录并授权。
[root@backup ~]# mkdir -p /data
[root@backup ~]# chown -R rsync.rsync /data
[root@backup ~]# ls -ld /data
drwxr-xr-x 2 rsync rsync 6 4月 16 10:04 /data
3)重启rsync服务(只要修改配置,就考虑重载服务)
[root@backup ~]# systemctl restart rsyncd
4)从客户端访问测试
[root@backup ~]# ls /data
etc
1、内部人员产生的数据(定时备份足矣):
程序员开发代码(他电脑上)==>代码服务器上(git/svn代码版本管理)==>测试环境测试===>正式环境
原则上程序代码可以不备份。
运维人员,写定时任务,写个备份脚本,更改或增加服务配置rsyncd.conf,需要备份
运维人员修改配置(测试服务器)==>代码服务器上(git/svn代码版本管理)==>测试环境测试===>正式环境
原则上运维人员的变更可以不备份。
2、用户产生的数据(必须实时备份)
图片、视频等文件是放在存储服务器上的,任意时刻都可能传上来,必须实时备份。
文本(博客文章),放在数据库里,,任意时刻都可能发布,必须实时备份。
先把框架写出来: