Centos6.9 搭建rsync服务端与客户端 案例:全网备份项目
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服务端与客户端 案例:全网备份项目的更多相关文章
- contos7搭建syslog服务端与客户端
搭建中心服务端1,编辑文件/etc/rsyslog.conf,找到以下内容,将前面的#注释符合去除#$ModLoad imtcp#$InputTCPServerRun 514 2,在/etc/rsys ...
- [Linux] 搭建rsync服务端
rsync是unix/linux下同步文件的一个高效算法,它能同步更新两处计算机的文件与目录,并适当利用查找文件中的不同块以减少数据传输. Linux守护进程的运行方式:1.独立运行(stand-al ...
- Centos6.6 安装rsync服务端
一.介绍 在工作中经常遇到代码分发,或者是资料备份,都会用到rsync,配置不算复杂,仅做下记录,安装环境如下: 1) Centos6.6 2) rsync-3.0.6-12.el6.x86_64 3 ...
- rsync 服务端和客户端 简单配置
环境:Centos 6.9 两台服务器,A(192.168.223.129) 和 B(192.168.223.130).A 作为服务端,B作为客户端从A服务器同步目录.把A的/usr/src 目录下的 ...
- centos 搭建 git 服务端和客户端
centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum instal ...
- Centos 6.5 搭建l2tp 服务端和客户端
废话不多说直接上步骤. server #epel仓库愿安装 rpm -ivh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release- ...
- windows下搭建svn服务端、客户端
1.安装SVN服务器subversion以及客户端TortoiseSVN,在网上下载windows版的subversion,TortoiseSVN并安装,比如我的服务端安装在了D:\Program F ...
- webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
1.定义接口 package org.WebService.ws.annotation; import javax.jws.WebService; @WebService public interfa ...
- SVN 服务端 和 客户端
网址大全 | EF CodeFirst | 电视 | MyNPOI | 开源 | 我的皮肤 | ASP.NET MVC4 | 前端提升 | LINQ | WCF ...
随机推荐
- react native 安卓打包--mac环境,如果打包不成功可注意下my-release-key.keystore的位置关系(绝对路径)
// my-release-key.keystore和my-key-alias都是可修改的名称 1.生成签名密钥(keytool -genkey -v -keystore my-release-key ...
- cmd,bat和dos的区别
区别 dos是磁盘操作系统(Disk Operating System),是个人计算机上的一类操作系统. bat是DOS命令,在任何dos环境下都可以使用. bat文件是dos下的批处理文件,批处理文 ...
- python多线程Event实现红绿灯案例
代码: # __author__ = 'STEVEN' # coding = utf-8 import time,threading #开启事件 event = threading.Event() c ...
- FFT与NTT的模板
网上相关博客不少,这里给自己留个带点注释的模板,以后要是忘了作提醒用. 以洛谷3803多项式乘法裸题为例. FFT: #include <cstdio> #include <cmat ...
- 关于vue的源码调试
一直看源码都是硬生生的看, 其实, 还是感觉调试起来会看的比较舒服. GitHub把vue的源码下载下来 npm install && npm run dev 在example中新建一 ...
- CVE-2017-3248——WebLogic反序列化漏洞利用工具
著名的web中间件WebLogic被曝出之前的反序列化安全漏洞补丁存在绕过安全风险,用户更新补丁后,仍然存在被绕过成功执行远程命令攻击的情况,安全风险高,Oracle官方及时发布了最新补丁,修复了该漏 ...
- 关于foreach的一个BUG
foreach用起来比for更方便,但是foreach隐藏的操作,可能带来更多未知的BUG,今天就遇到一个问题.编程环境VS2010 //使用foreach遍历,其中未改变item的值,但是使用了匿名 ...
- DTO和ViewModel的区别
Data Transfer Object 数据传输对象 ViewModel 视图实体(我们在新建MVC项目是会发现Model文件夹下会有一些ViewModel实体) 简单的理解一下两者之间的区别,举个 ...
- json_encode 中文处理
在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存储格式. ...
- 安装AAA服务器遇到的问题
安装升级AAA服务器的操作思路: 第一种:在原始服务器下更新升级安装包,实现升级: 第二种:重新安装最新版本的IOS,实现版本更新: 第一种方案更新AAS服务器ios 步骤1:copy软件更新包到li ...