三个任务(blog)版
三个任务
第一个任务备份服务
- nfs和backup两台服务器
- nfs客户端 ——> backup服务端
服务端配置(backup服务器)
1)安装rsync服务
yum install -y rsync
2)修改配置文件
#修改配置文件/etc/rsyncd.conf
uper =yes
uid = rsync #rsync运行 用户 虚拟用户
gid = rsync
use chroot = no
max connections = 2000 #最大连接数
timeout = 600 #连接超时 超时时间
pid file = /var/run/rsyncd.pid #存放服务的pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log #rsync服务端日志
ignore errors
read only = false
list = false
auth users = rsync_backup #rsync服务端进行验证用户用户名
secrets file = /etc/rsync.password #rysnc服务端用于验证密码文件
[nfs_data] #模块对应的目录
path = /nfs_data
3)添加rsync用户
useradd -s /sbin/nologin -M rsync
4)创建密码文件,配置文件中认证用户密码更改密码文件权限
echo 'rsync_backup:123456' > /etc/rsync.password
chmod 600 /etc/rsync.password #不改权限的话会报错
5)创建模板中文件夹并修改属组改为rsync.rsync
mkdir -p /nfs_data
chown -R rsync.rsync /nfs_data
6)重启服务并设置自动启动
systemctl enable rsyncd
systemctl start rsyncd
客户端安装部署(nfs服务器)
1)安装rsync服务
yum install -y rsync
2)免密交互client文件
echo '123456' > /etc/rsync.client
第二个任务nfs存储服务
- nfs和web服务器部署
- web服务器上挂载到nfs上
服务端(nfs服务器)
1)部署 nfs-utils,rpcbind
yum install -y nfs-utils,rpcbind
2)修改配置文件 /etc/exports
/nfsdata/ 172.16.1.0/24(rw,allsquash)
3)创建共享目录并修改所有者
mkdir /nfsdata
chown -R nfsnobody.nfsnobody /nfsdata
4)启动服务 rpcbind 和 nfs(按照先rpc后nfs)
systemctl restart rpcbind
systemclt restart nfs
客户端(web服务器)
1)安装nfs-utils
yum install -y nfs-utils
2)创建挂在目录/ans-upload
mkdir /ans-upload
3)挂载和永久挂载
mount -t nfs 172.16.1.31:/nfsdata/ /ans-upload/
#查看挂载目录没
showmount -e 172.16.1.31
#查看现有挂载
df -h
第三个实时同步服务(Sersync)
- 在nfs端部署
nfs端
1)修改sersync的配置文件和运行文件
软件包下载个好多年不更新了,2.5.4版本
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@nfs ~]# tree GNU-Linux-x86/
GNU-Linux-x86/
├── confxml.xml
└── sersync2
confxml.xml 配置文件
sersync2 命令
- sersync配置参数
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
<host hostip="localhost" port="8008"></host> #保留字段,默认即可
<debug start="false"/> #是否开启调试模式,默认false即可
<fileSystem xfs="true"/> #是否开启支持xfs文件系统,Centos7默认都是xfs的了,所以建议true开启
<filter start="false"> #是否开启过滤模式.根据需求开启,例:过滤以.php结尾的文件(.*)\.php
<exclude expression="(.*)\.svn"></exclude> #过滤以.svn结尾的文件
<exclude expression="(.*)\.gz"></exclude> #过滤以.gz结尾的文件
<exclude expression="^info/*"></exclude> #过滤监控目录下的info路径
<exclude expression="^static/*"></exclude> #过滤监控目录下的static路径
<exclude expression="wwwroot/blogwhsir/*"></exclude> #过滤wwwroot/blogwhsir/目录下所有文件
</filter>
<inotify> #inotify监控事件
<delete start="true"/> #如果不开启此项,在删除监控目录下的文件时,目标服务器的文件则不会同时删除,根据需求开启
<createFolder start="true"/> #不开启不能监控子目录,建议true
<createFile start="false"/> #关闭提高通讯性能,默认就好
<closeWrite start="true"/> #是否有closeWrite事件(修改后退出)
<moveFrom start="true"/> #移动/改名
<moveTo start="true"/> #移动/改名
<attrib start="false"/> #文件属性变化
<modify start="false"/> #文件内容修改
</inotify>
<sersync>
<localpath watch="/opt/tongbu"> #指定要监控的本地目录
<remote ip="127.0.0.1" name="tongbu1"/> #指定要同步的目标服务器的IP地址,及目标服务器rsync的[模块]
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync> #配置rsync
<commonParams params="-artuz"/> #rsync的参数
<auth start="false" users="root" passwordfile="/etc/rsync.pas"/> #是否开启rsync的认证模式,需要配置users及passwordfile,根据情况开启(如果开启,注意密码文件权限一定要是600)
<userDefinedPort start="false" port="874"/><!-- port=874 --> #远程目标服务器的端口不是默认端口时使用
<timeout start="false" time="100"/><!-- timeout=100 --> #是否开启rsync的超时时间
<ssh start="false"/>
</rsync>
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--> #目标服务器传输失败时会重新传输,再次失败会写入rsync_fail_log中,每隔一段时间timeToExecute)执行脚本再次传输
<crontab start="false" schedule="600"><!--600mins--> #对监控目录与目标服务器每隔一段时间进行一次整体同步,默认600分钟,根据个人情况是否开启
<crontabfilter start="false"> #如果之前开启了文件过滤,这里也要设置过滤
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
<plugin start="false" name="command"/>
</sersync>
<plugin name="command"> #下面就是插件的设置(不做过多说明)
<param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix-->
<filter start="false">
<include expression="(.*)\.php"/>
<include expression="(.*)\.sh"/>
</filter>
</plugin>
<plugin name="socket">
<localpath watch="/opt/tongbu">
<deshost ip="192.168.138.20" port="8009"/>
</localpath>
</plugin>
<plugin name="refreshCDN">
<localpath watch="/data0/htdocs/cms.xoyo.com/site/">
<cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
<sendurl base="https://blog.whsir.com"/>
<regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
</localpath>
</plugin>
</head>
- 需要修改的内容
<sersync>
<localpath watch="/ans-upload"> #指定要监控的本地目录
<remote ip="127.0.0.1" name="nfsdata"/> #指定要同步的目标服务器的IP地址,及目标服务器rsync的模块
</rsync>
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--> #目标服务器传输失败时会重新传输,再次失败会写入rsync_fail_log中,每隔一段时间timeToExecute)执行脚本再次传输
<crontab start="false" schedule="600"><!--600mins--> #对监控目录与目标服务器每隔一段时间进行一次整体同步,默认600分钟,根据个人情况是否开启
</rsync>
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--> #目标服务器传输失败时会重新传输,再次失败会写入rsync_fail_log中,每隔一段时间timeToExecute)执行脚本再次传输
2)启动sersync2服务
#创建软连接后,可以直接在命令行使用sersync2命令
ln -s /app/tools/sersync2 /bin/sersync2
#运行sersync2
sersync2 -rdo /app/tools/confxml.xml
最后结果
在web服务器的/ans-upload中创建文件时,会被同步到nfs的/nfsdata目录中,经过sersync实时同步后同步到backup服务器中的/nfs-data中
三个任务(blog)版的更多相关文章
- OOP第三次总结Blog
1. 前言 相比于前一次Blog题目集,此次七八九题目集偏重于类的继承.多态性使用方法以及接口的应用;在设计层面,强调模式复用,不断的迭代,若前期设计不合理,则后续的题目增加新的功能(即可扩展性)将会 ...
- Java 学习札记(三)免安装版TomCat中tomcat6w.exe的运行
1.使用环境 很多时候我们用的是官网的解压免安装版的Tomcat,相比安装Tomcat除了少了安装步骤以外还少了tomcat6w.exe运行所需要的环境变量,所以一般Java开发免安装版的已经足够使用 ...
- Spring 循环引用(三)源码深入分析版
@ 目录 前言 正文 分析 doGetBean 为什么Prototype不可以 createBean doCreateBean getEarlyBeanReference getSingleton b ...
- 《数据结构与算法Python语言描述》习题第二章第三题(python版)
ADT Rational: #定义有理数的抽象数据类型 Rational(self, int num, int den) #构造有理数num/den +(self, Rational r2) #求出本 ...
- win10教育版永久激活密钥 win10教育版激活码 win10教育版产品密钥2018(第三种方法亲测可用!)
有没有最新win10教育版激活密钥?win10教育版功能比较全面,增加了一些学术上需要的功能.有用户装了win10教育版,提示需要产品密钥,网上找到的win10教育版永久激活码大多失效,这边小编为大家 ...
- 【RAC】 RAC For W2K8R2 安装--共享磁盘的配置(三)
[RAC] RAC For W2K8R2 安装--共享磁盘的配置(三) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学 ...
- 【OGG】OGG简单配置双向复制(三)
[OGG]OGG简单配置双向复制(三) 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O ...
- Django:快速搭建简单的Blog
一,创建项目 1, 为blog创建名为mysite的工程项目: django-admin.py startproject mysite 2, 项目结构如下: mysite ├── manage.py ...
- centos 7 部署 汉化版 gitlab
=============================================== 2017/11/12_第6次修改 ccb_warlock 更 ...
- Linux的发行版,不同发行版之间的联系和区别
Linux 主要作为Linux发行版(通常被称为"distro")的一部分而使用.这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写.它们通常包括了其他的系统软件和应用 ...
随机推荐
- liunx系统安装JDK环境详细步骤
Liunx系统安装JDK环境详细步骤 一 下载liunx版本jdk压缩包 进入JDK官方网站下载jdk压缩包.下载前需要登入账户,可以自己注册一个账户! 也可以使用本博主提供的网盘下载https:// ...
- Docker快速部署Nacos
前置 机器配置不能太低 ( 2c2g的轻量服务器直接崩掉了) Docker https://www.docker.com/ 开始安装 mysql 使用docker安装mysql (推荐8.0) 可以不 ...
- 获取对象的方式-Calendar类的常用成员方法
获取对象的方式 java.utiL.calendar类:日历类caLendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR.MONTH.DAY_OF_MONTH.HOUR )CaLend ...
- JDK的下载与安装-环境变量的配置
JDK的下载与安装 环境变量的配置 配置环境变量作用 开发Java程序,需要使用JDK中提供的工具,工具在JDK9安装目录的 bin 目录下. 在DOS命令行下使用这些工具,就要先进入到JDK的bin ...
- 【学习笔记】一种特别有意思的 RTOS 任务切换方法
一.介绍说明 目前常见流行的 RTOS 实现方式,如 FreeRTOS.uCosII.RT-Thread 等等,它们的内部的任务切换实现原理都差不多,都是通过借助汇编,根据不同的情况读写 CPU 寄存 ...
- Docker修改已有容器的端口映射
Docker修改已有容器的端口映射 背景 拉取了jenkins的镜像,启动容器的时候端口就映射了8080,但这个演示环境要用到jenkins node,其中默认的代理端口是50000.漏了,就想着能否 ...
- Django-Ajax、form组件
1.Ajax 1.AJAX:不是新的编程语言,而是一种使用现有标准的新方法,我们目前学习的是jQuery版本.特点:异步提交,局部刷新. 2.AJAX 最大的优点是在不重新加载整个页面的情况下,可以与 ...
- 转载:屎人-->诗人系列--码农之歌
转贴经常关注的一个博主的文,感觉还挺有趣: https://goofegg.github.io/content.html?id=141 ************************** 这个系列第 ...
- 关于集合中remove()方法的问题
首先上一段代码: needDelete()方法:决定是否要删除 public static boolean needDelete(Object obj) { if (obj.equals(" ...
- 基于pytorch实现模型剪枝
一,剪枝分类 1.1,非结构化剪枝 1.2,结构化剪枝 1.3,本地与全局修剪 二,PyTorch 的剪枝 2.1,pytorch 剪枝工作原理 2.2,局部剪枝 2.2.1,局部非结构化剪枝 2.2 ...