rsync的企业工作场景说明

1)定时备份

1.1生产场景集群架构服务器备份方案项目

借助cron+rsync把所有客户服务器数据同步到备份服务器

2)实时复制

本地数据传输模式(local-only mode)

/oldboy/ 与/oldboy

/oldboy 表示oldboy目录及oldboy目录下面的内容

/oldboy/ 只表示oldboy目录下面的内容

--delete 复制的时候保持目标与源文件的内容一模一样

通过远程shell进行数据传输

[root@backup ~]# scp -rP 22 /etc 172.16.1.31:/tmp      #拷贝本机/etc目录到远程172.16.1.31的/tmp目录

[root@backup ~]# rsync -avz /etc/sysconfig 172.16.1.31:/tmp  #同步本机/etc/sysconfig目录到远程172.16.1.31的/tmp目录

全网备份项目

web01服务器

备份/var/www/html

生成web01-2018-01-01_1.tar.gz

md5sum压缩包>check.log

推送当天的压缩包

删除7天前的压缩包

1.搭建rsync服务端与客户端

backup搭建rsync服务端

[root@backup ~]# mkdir /backup

[root@backup ~]# useradd -s /sbin/nologin -M rsync

[root@backup ~]# chown -R rsync.rsync /backup

[root@backup ~]# ls -ld /backup

drwxr-xr-x 2 rsync rsync 4096 Aug 1 06:45 /backup

[root@backup ~]# echo 'rsync_backup:123456' >/etc/rsync.password

[root@backup ~]# cat /etc/rsync.password

rsync_backup:123456

[root@backup ~]# chmod 600 /etc/rsync.password

[root@backup ~]# ll /etc/rsync.password

-rw------- 1 root root 20 Jun 7 18:27 /etc/rsync.password

# vim /etc/rsyncd.conf

##rsyncd.conf start##

uid = rsync     #指定rsync运行时候的用户

gid = rsync     #指定rsync运行时候的用户

use chroot = no   #安全相关

max connections = 200   #最大的连接数

timeout = 300 #超时的时间

pid file = /var/run/rsyncd.pid   #pid号码存放的文件

lock file = /var/run/rsync.lock   #锁文件

log file = /var/log/rsyncd.log   #rsync的日志

[backup] #模块名称

path = /backup/     #分享的目录

ignore errors      #忽略错误

read only = false    #是否只读

list = false

hosts allow = 172.16.1.0/24 #2选1

hosts deny = 0.0.0.0/32

auth users = rsync_backup       #只用于验证的用户,看大门的用户

secrets file = /etc/rsync.password    #存放密码的rsync_backup:123456

#rsync_config_______________end

[root@backup ~]# ps -ef|grep rsync

root 1523 1 0 08:04 ? 00:00:00 rsync --daemon

root 1588 1547 0 08:14 pts/0 00:00:00 grep rsync

[root@backup ~]# ss -lntup|grep rsync

tcp LISTEN 0 5 :::873 :::* users:(("rsync",1523,5))

tcp LISTEN 0 5 *:873 *:* users:(("rsync",1523,3))

web01作为rsync客户端配置:

1.检查软件是否安装

[root@web01 ~]# rpm -qa rsync

rsync-3.0.6-12.el6.x86_64

2.创建密码文件并修改权限:123456

[root@web01 ~]# echo '123456' > /etc/rsync.password

[root@web01 ~]# chmod 600 /etc/rsync.password

3.测试

[root@web01 ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

2.书写客户端脚本

web01脚本:

#备份文件和配置

tar zchf /backup/web01-$(date +%F_%w).tar.gz /var/www/html /etc/rc.local /var/spool/cron/

#做md5sum

cd /backup

md5sum web01-$(date +%F_%w).tar.gz>check.log

#推送备份数据

rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

#删除七天以前

find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm

3.写入web01定时任务

[root@web01 backup]# mkdir -p /server/scripts

[root@web01 backup]# vim /server/scripts/bak-web01.sh

#!/bin/bash

#desc:backup html && conf

date=$(date +%F_%w)

#备份文件和配置

tar zchf /backup/web01-${date}.tar.gz /var/www/html /etc/rc.local /var/spool/cron/

#做md5sum

cd /backup

md5sum web01-${date}.tar.gz>check.log

#推送备份数据

rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

#删除七天以前

find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm

4.熟悉backup脚本

#执行脚本

[root@web01 backup]# sh /server/scripts/bak-web01.sh

5.写入定时任务

#crontab -e

#backup conf html hkping 2018-01-27

00 00 * * * /bin/sh /server/scripts/bak-web01.sh >/dev/null 2>&1

在backup上的要求:

保留每周六的压缩包

删除180天之前的文件

#backup上的脚本

#find /backup/ -type f -name "*.tar.gz" -mtime +180 ! -name "*_6.tar.gz"|xargs rm

#md5sum检查

cd /backup/ && md5sum -c check.log >/backup/result.log

if [ $? -eq 0 ];then

mail -s "md5sum wrong" 275597862@qq.com </backup/result.log

fi

#需要打开postfix服务,

/etc/init.d/postfix start

chkconfig postfix on

mail -s "md5sum wrong" 275597862@qq.com </etc/hosts

#开始写check.sh脚本

[root@backup backup]# mkdir -p /server/scripts

[root@backup backup]# vim /server/scripts/check.sh

#!/bin/bash

#backup上的脚本

find /backup/ -type f -name "*.tar.gz" -mtime +180 ! -name "*_6.tar.gz"|xargs rm

#md5sum检查,错误发邮件

cd /backup/ && md5sum -c check.log >/backup/result.log

if [ $? -ne 0 ];then

mail -s "md5sum wrong" 275597862@qq.com </backup/result.log

fi

#定时任务

# crontab -e

#check & send result at 20180801

00 03 * * * /bin/sh /server/scripts/check.sh >/dev/null 2>&1

Centos6.9 搭建rsync服务端与客户端 案例:全网备份项目的更多相关文章

  1. contos7搭建syslog服务端与客户端

    搭建中心服务端1,编辑文件/etc/rsyslog.conf,找到以下内容,将前面的#注释符合去除#$ModLoad imtcp#$InputTCPServerRun 514 2,在/etc/rsys ...

  2. [Linux] 搭建rsync服务端

    rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输. Linux守护进程的运行方式:1.独立运行(stand-al ...

  3. Centos6.6 安装rsync服务端

    一.介绍 在工作中经常遇到代码分发,或者是资料备份,都会用到rsync,配置不算复杂,仅做下记录,安装环境如下: 1) Centos6.6 2) rsync-3.0.6-12.el6.x86_64 3 ...

  4. rsync 服务端和客户端 简单配置

    环境:Centos 6.9 两台服务器,A(192.168.223.129) 和 B(192.168.223.130).A 作为服务端,B作为客户端从A服务器同步目录.把A的/usr/src 目录下的 ...

  5. centos 搭建 git 服务端和客户端

    centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum instal ...

  6. Centos 6.5 搭建l2tp 服务端和客户端

    废话不多说直接上步骤. server #epel仓库愿安装 rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release- ...

  7. windows下搭建svn服务端、客户端

    1.安装SVN服务器subversion以及客户端TortoiseSVN,在网上下载windows版的subversion,TortoiseSVN并安装,比如我的服务端安装在了D:\Program F ...

  8. webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)

    1.定义接口 package org.WebService.ws.annotation; import javax.jws.WebService; @WebService public interfa ...

  9. SVN 服务端 和 客户端

    网址大全  |  EF CodeFirst  |  电视  |  MyNPOI  |  开源  |  我的皮肤  |  ASP.NET MVC4  |  前端提升  |  LINQ  |  WCF   ...

随机推荐

  1. properties 文件注意事项

    不要使用""双引号包裹内容 db.validationQuery="select 1"比如上面这种是错误的,下面的是正确的写法 db.validationQue ...

  2. Jquery | 基础 | .hover()

    https://api.jquery.com/hover/#hover-handlerIn-handlerOut http://jquery.cuishifeng.cn/hover.html

  3. 关于maven+springmvc+mybits搭建的框架clean,build后错误:org.apache.ibatis.binding.BindingException的处理

    1.错误原型截图: 2.我对错误的处理轨迹: a.首先,可能是我的mapper.xml配置错了,但是经过查看发现mybits.xml配置如下: 我项目的目录结构如下: 初次判断mybits的配置没有问 ...

  4. 在开发中经常会有多级跳转 viewcontroller的问题,然后有时不一定要一级一级的返回,可能直接返回到某个根视图控制器或某个指定的控制器.

    其中采用navigationController pushViewController 的方法,比如我从主页面跳转到了4级页面,又从4级页面跳转到了2级页面,然后从2级页面跳转到了4级页面然后在重4级 ...

  5. DRF教程2-请求和响应

    Request objects REST framework中有一个Request对象,是HttpRequest的扩展,提供了新的请求解析,Request的核心功能就是request.data,它和r ...

  6. 洛谷P1823 [COI2007] Patrik 音乐会的等待

    https://www.luogu.org/problemnew/show/P1823 自己只会一个log的 设取的人的位置分别是l,r(l<r) 这个做法大概是考虑枚举r,设法对于每个r求出有 ...

  7. Java EE学习笔记(三)

    Spring AOP 1.Spring AOP简介 1).AOP的全称是Aspect-Oriented Programming,即面向切面编程(也称面向方面编程).它是面向对象编程(OOP)的一种补充 ...

  8. Storm编程入门API系列之Storm的Topology多个Executors数目控制实现

    前期博客 Storm编程入门API系列之Storm的Topology默认Workers.默认executors和默认tasks数目 Storm编程入门API系列之Storm的Topology多个Wor ...

  9. MYSQL5.7.11安装问题

    今天下午在笔记本上安装MySQL软件.一开始下载的是最新版5.7.20-winx64.到了安装环节,各种报错,先是缺少什么DLL120,好吧,找到资源补丁下载,放到系统文件夹.以为OK了.再尝试,这次 ...

  10. 浅析ES6中的iterator

    1.iterator迭代器必须保证其遍历终止条件可控,否则会形成死循环demo: //会用到iterator接口的场合 //1.for...of循环 //2. ...解构表达式 const obj = ...