初识
开源,多功能,全量和增量的本地或远程数据同步备份的优秀工具,remote synchronization
俩服务器定/实时备份cron+rsync,数据同步,全网备份
一个rsync相当于scp、cp、rm,但又优于他们
yum install -y rsync
支持断点续传,限速等特定功能
优缺点
优点:增量备份,支持ssh,支持daemon ,集中备份
缺点:大文件对比时间比较长,大文件有时候可能传输不完整
一次性拷贝可以直接使用SCP
工作模式
1、本地模式:cp,rm
2、通道模式:ssh加密
3、daemon:非加密,一般不需要都是内网
二三模式不能混合使用
参数
-avz 基本可以满足需求
-v:verbose详细模式输出
-z:zip传输时压缩来提高传输效率
-a:archive归档模式,等于rtopgDl
-t:time保持文件时间信息
-o:owner保持文件属组信息
-p:保持文件权限
-g:group保持文件所属组
-l:link保持文件软链接
-p:process显示同步过程和进度信息
--delete 按照源端来删除目的端的文件
--exclude:排除不需要传输的文件
--bwlimit=rate 备份带宽,别把马路占满,注意备份时间
-e, --rsh=command 指定使用rsh、ssh方式进行数据同步
实践
1、将/server/ssh目录里的所有的文件同步至/back 目录(不包含/server/ssh本身)
[root@localhost ~]# rsync -azv /server/ssh/ /back/
2、将服务器的test文件夹和内部文件都通过ssh隧道复制到备份服务器中
[root@moban ~]# rsync -avz /root/test -e ’ssh -p 22‘ root@192.168.2.40:/root/
root@moban ~]# rsync -avz -e ssh root@192.168.2.40:/root/666 /root/
和scp命令类似,既可以上传,也可以下载,只需要调整位置即可,通过ssh免密配置,定时任务直接备份
主配置文件
/etc/rsyncd.conf
#rsync_config_start
#created by oldboy 18:00 2016/4/20
##rsyncd.conf start##
uid = rsync #用户uid 虚拟用户
gid = rsync #用户组gid
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 #日志文件
[backup] #模块名称
path = /backup #服务器提供访问的目录
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
#rsync_ config_end
实践是检验真理的唯一标准
服务器端 :根据服务主配置文件来做配置
环境
[root@NFS_22 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@NFS_22 ~]# uname -a
Linux NFS_22 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686 i686 i386 GNU/Linux
[root@NFS_22 ~]# rsync --version
rsync version 3.0.6 protocol version 30
1、建立备份目录/backup,要转移备份先把东西整理到一个地方,专门用来拉取文件的仓库
[root@backup ~]# mkdir /backup
2、添加用户,初识尝试启动服务,返回这说明我们要配置这个文件
[root@nfs ~]# id rsync #没有该用户
id: rsync: No such user
[root@nfs ~]# useradd rsync -s /sbin/nologin -M #nologin #不登录是虚拟用户,-M不创建家目录
[root@nfs ~]# tail -1 /etc/passwd
rsync​​501:501::/home/rsync:/sbin/nologin
[root@nfs ~]# rsync --daemon #为备份服务器创建配置文件,起初没有配置文件,下面要增加配置
Failed to parse config file: /etc/rsyncd.conf
3、配置服务主配置文件,查看服务是否启动成功
[root@nfs ~]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
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
[backup]
path = /backup
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
[root@nfs ~]# rsync --daemon #配置文件没有问题,不会报错,正常启动
[root@nfs ~]# ps -ef |grep rsync|grep -v "grep"
root 2077 1 0 04:17 ? 00:00:00 rsync --daemon
4、创建存密码的文件,为了安全去修改文件权限,修改备份文件的所属者和所属组
[root@nfs ~]# echo "rsync_backup:oldboy" > /etc/rsync.password
[root@nfs ~]# ll /etc/rsync.password
-rw-r--r--. 1 root root 20 Oct 11 04:33 /etc/rsync.password
[root@nfs ~]# chmod 600 /etc/rsync.password
[root@nfs ~]# ll /etc/rsync.password
-rw-------. 1 root root 20 Oct 11 04:33 /etc/rsync.password
[root@nfs ~]# chown -R rsync.rsync /backup/
5、根据rsync服务的端口873来找服务开没开,两种方法
方式一:lsof
[root@nfs ~]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 2077 root 3u IPv4 14793 0t0 TCP *:rsync (LISTEN)
rsync 2077 root 5u IPv6 14794 0t0 TCP :rsync (LISTEN)
方式二:netstat
[root@nfs ~]# netstat -lntup |grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0: LISTEN 2077/rsync
tcp 0 0 :::873 :::* LISTEN 2077/rsync
6、将进程加入开机自启动文件rc.local当中
开机自启动 chkconfig rsync on
[root@nfs ~]# echo "/usr/bin/rsync --daemon" >>/etc/rc.local
[root@nfs ~]# tail -1 /etc/rc.local
/usr/bin/rsync --daemon
7、修改配置文件,先杀死服务,然后在启动文件
pkill rsync
lsof -I :873
rsync --daemon
8、多模块配置,增加一个模块,新建目录,修改目录权限
客户端
1、存在rsync服务
[root@NFS_22 ~]# rpm -qa rsync
rsync-3.0.6-9.el6_4.1.i686
2、配置虚拟用户的密码
echo "oldboy" >/etc/rsync.password
chmod 600 /etc/rsync.password
mkdir -p /backup
功能实现:现在客户端把文件推到服务器端,在客户端操作
方式一:
[root@NFS_22 backup]# rsync -avz /backup/ rsync_backup@192.168.2.11::backup/ --password-file=/etc/rsync.password
方式二:
[root@NFS_22 backup]# rsync -avz /backup/ rsync://rsync_backup@172.16.1.11/backup --password-file=/etc/rsync.password
功能实现:拉取文件,就是将目的地和源地址反过来就是从服务器端拉取文件
[root@NFS_22 backup]# rsync -avz rsync_backup@192.168.2.11::backup /backup/ --password-file=/etc/rsync.password
故障总结,模拟故障来增加经验
服务端备份目录没有
备份目录权限不够
虚拟用户密码不正确,多个空格,多个换行符,都有可能导致密码不正确
防火墙开启,导致失败
排错
查看错误提示
查看日志 tail -1 /var/log/rsync.log
仔细排查部署过程
客户端拍错,密码文件,测试端口
排除推送:
排除单个文件 --exclude=a
排除多个文件
--exclude={a,b}
--exclude={a..z}
--exclude-from=paichu.log
无差异同步:慎用,没有后悔药
--delete A B 按照A来无差异同步B,如果B有多余文件则删除,缺少文件则复制添加
rsync -avz --delete /backup/ rsync_backup@192.168.2.11::backup --password-file=/etc/rsync.password
实践
每天晚上00点整在Web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留
(备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上)。
具体要求如下:
1)Web服务器A和备份服务器B的备份目录必须都为/backup。
2)Web服务器站点目录假定为(/var/www/html)。
3)Web服务器本地仅保留7天内的备份。
4)备份服务器上检查备份结果是否正常,并将每天的备份结果发给管理员信箱(选做)。
5)备份服务器上每周六的数据都保留,其他备份仅保留180天备份(选做)。
NFSserver的/var/www/html打包压缩同步到/backup目录,每次备份的打包备份的文件只保留七天:
tar -zchf /backup/html.$(date +%F%w -d '-1day').tar.gz /var/www/html/

集群架构05·备份服务rsync的更多相关文章

  1. Java高可用集群架构与微服务架构简单分析

    序 可能大部分读者都在想,为什么在这以 dubbo.spring cloud 为代表的微服务时代,我要还要整理这种已经"过时"高可用集群架构? 本人工作上大部分团队都是7-15人编 ...

  2. 集群架构04·NFS服务,环境安装

    初识 网络文件系统Netwrok File System,类似于wiin10的网络共享 功能:通过网络让不同主机系统之间可以共享文件或目录 客户端通过挂载的方式将服务器端共享的目录挂载到本地系统. 集 ...

  3. 网站集群架构(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

    前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高 ...

  4. Linux Web集群架构详细(亲测可用!!!)

    注意:WEB服务器和数据库需要分离,同时WEB服务器也需要编译安装MySQL. 做集群架构的重要思想就是找到主干,从主干区域向外延展. WEB服务器: apache nginx  本地做三个产品 de ...

  5. MongoDB集群架构及搭建

    MongoDB分布式集群 MongDB分布式集群能够对数据进行备份,提高数据安全性,以及提高集群提高读写服务的能力和数据存储能力.主要通过副本集(replica)对数据进行备份,通过分片(shardi ...

  6. 【MySQL大系】《Mysql集群架构》

    原文地址(微信):[技术文章]<Mysql集群架构> 本文地址:http://www.cnblogs.com/aiweixiao/p/7258444.html 点击关注微信公众号 1.主要 ...

  7. 构建MHA实现MySQL高可用集群架构

    一.MHA简介 MHA(Master HighAvailability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开 ...

  8. Galera Cluster——一种新型的高一致性MySQL集群架构

    原文链接:https://www.sohu.com/a/147032902_505779,最近被分配定位mysql的问题,学习下. 1. 何谓Galera Cluster 何谓Galera Clust ...

  9. 二、ELKStack集群架构设计

    一.ELKStack介绍与入门实践 二.Elasticsearch 集群架构图 服务器配置:Centos6.6 x86_64 CPU:1核心 MEM:2G (做实验,配置比较低一些) 注:这里配置el ...

随机推荐

  1. Oracle自动化安装脚本-part02-亲试ok

     此为网络配置文件  network.conf [PUBLIC-IP] IP-LIST:192.168.7.198,192.168.8.221 HOSTNAME-LIST:mysql-198,RAC2 ...

  2. metal tile shader

    刚发现了个问题 tileshader的memory不需要和attachement对应 imageblock被tileshader读写 fragmentshader也可以写imageblock 还可以正 ...

  3. .NET界面开发新体验!DevExpress v19.2.4全新来袭

    DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...

  4. idea java快速生成返回值

    ctrl+alt+V 或者

  5. Appium自动化测试教程-自学网-SDK

    SDK:软件开发工具包,被软件开发工程师用于特定的软件包.软件框架.硬件平台.操作系统等建立应用软件的开发工具的集合. 因此,Android SDK指的是Android专属的软件开发工具包. 1,安装 ...

  6. SIGAI机器学习第九集 数据降维2

    讲授LDA基本思想,寻找最佳投影矩阵,PCA与LDA的比较,LDA的实际应用 大纲: 非线性降维算法流形的概念流形学习的概念局部线性嵌入拉普拉斯特征映射局部保持投影等距映射实验环节 非线性降维算法: ...

  7. P1772 [ZJOI2006]物流运输 最短路+DP

    思路:最短路+DP 提交:1次 题解: $f[i]$表示到第$i$天的最小代价,我们可以预先处理出$i,j$两天之间(包括$i,j$)都可通行的最短路的代价记做$s[i][j]$,然后有$f[i]=m ...

  8. sigaction()函数

    sigaction函数 修改信号处理动作(通常在Linux用其来注册一个信号的捕捉函数) int sigaction(int signum, const struct sigaction *act, ...

  9. MySQL数据分析-(5)数据库设计之ER模型

    大家好,我是jacky,很高兴跟大家分享本课时的内容,从本节课开始,就开始了我们第二章的学习,第一章我们抛出了若干问题,从第二章开始往后,都是解决问题的一个过程: 第一章的案例中,我们拿手机销售公司举 ...

  10. Java 生成六位短信验证码

    在<Java 生成三位随机数>中,简要介绍了使用Java生成三位随机数的方法,前几天在工作中遇到生成6位短信验证码的需求,验证码由6位随机数字构成,不包含字母.6位随机数通常用作短信验证码 ...