实验环境
操作系统 | 主机名 | IP | 软件 |
CentOS 6.5 | nginx1 | 192.168.200.101 VIP:192.168.200.253 | Nginx的+ KEEPALIVED |
CentOS 6.5 | nginx2 | 192.168.200.102 VIP:192.168.200.254 | Nginx的+ KEEPALIVED |
CentOS 6.5 | tomcat1 | 192.168.200.103 | Tomcat的+ memcached的 |
CentOS 6.5 | tomcat2 | 192.168.200.104 | Tomcat的+ memcached的 |
配置过程
统一配置
[root @ nginx1〜]#cat / etc / hosts
192.168.200.101 nginx1
192.168.200.102 nginx2
192.168.200.103 tomcat1
192.168.200.104 tomcat2
nginx1服务器部署
配置主机名
[root @ localhost〜]#主机名nginx1
[root @ localhost〜]#bash
百胜安装nginx的
[root @ nginx1〜]#yum -y install pcre-devel
[root @ nginx1〜]#rpm -ivh nginx-1.8.0-1.el6.x86_64_.rpm
准备... ########################################### [100% ]
1:nginx ########################################### [100%]
查找主配置文件
[root @ nginx1〜]#find / -type f -name“nginx.conf”
/etc/nginx/nginx.conf
/application/nginx-1.8.0/conf/nginx.conf
修改主配置文件
[root @ nginx1〜]#vim / application / nginx / conf / nginx.conf
keepalive_timeout 65;
上游tomcat_server {
服务器192.168.200.103:8080weight=1;
服务器192.168.200.104:8080weight=1;
}
gzip on;
服务器{
听80;
server_name localhost;
位置/ {
根html;
index index.html index.htm;
proxy_pass http:// tomcat_server;
}
}
检查语法
[root @ nginx1〜]#/ application / nginx / sbin / nginx -t
nginx:配置文件/应用程序/ nginx-1.8.0 / conf / nginx.conf语法正常
nginx:配置文件/应用程序/ nginx-1.8.0 / conf / nginx.conf测试成功
启动nginx的
[root @ nginx1〜]#/ application / nginx / sbin / nginx -c / application / nginx / conf / nginx.conf
[root @ nginx1〜]#netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2730 / nginx
nginx2配置和nginx1相同
双VIP负载均衡
工作原理:
两台Nginx 通过Keepalived 生成二个实例,二台Nginx 的VIP 互为备份,任何一台Nginx 机器如果发生硬件损坏,Keepalived 会自动将它的VIP 地址切换到另一台机器,不影响客户端的访问。
在nginx1 / 2上编译安装KEEPALIVED服务:
[root @ nginx1〜]#yum -y install kernel-developenssl-devel
[root @ nginx1〜]#tar xf keepalived-1.2.13.tar.gz
[root @ nginx1〜]#cd keepalived-1.2.13
[root @ nginx1 keepalived-1.2.13]#。/ configure --prefix = / - with-kernel-dir = / usr / src / kernels / 2.6.32-431.el6.x86_64 / && make && make install
[root @ nginx1 keepalived-1.2.13]#chkconfig --addkeepalived
[root @ nginx1 keepalived-1.2.13]#chkconfig keepalivedon
[root @ nginx1 keepalived-1.2.13]#chkconfig --listkeepalived
keepalived 0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
修改KEEPALIVED配置文件
nginx1
[root @ nginx1 keepalived-1.2.13]#vim / etc / keepalived / keepalived.conf
!配置文件keepalived
global_defs {
notification_email {
wolf@163.com
}
smtp_server127.0.0.1
smtp_connect_timeout 30
router_idLVS_DEVEL
}
vrrp_instance VI_1 {
状态备份
interfaceeth0
virtual_router_id 51
优先权50
advert_int 1
认证{
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.254
}
}
vrrp_instanceVI_2 {
状态MASTER
接口eth0
virtual_router_id 52
优先权100
advert_int 1
认证{
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.253
}
}
nginx2
!配置文件keepalived
global_defs {
notification_email {
wolf@163.com
}
smtp_server127.0.0.1
smtp_connect_timeout 30
router_idLVS_DEVEL
}
vrrp_instance VI_1 {
状态MASTER
interfaceeth0
virtual_router_id 51
优先权100
advert_int 1
认证{
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.254
}
}
vrrp_instance VI_2 {
状态备份
interfaceeth0
virtual_router_id 52
优先权50
advert_int 1
认证{
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.254
}
}
启动KEEPALIVED
[root @ nginx1 keepalived-1.2.13]#service keepalivedstart
正在启动keepalived:[确定]
[root @ nginx2 keepalived-1.2.13]#service keepalivedstart
正在启动keepalived:[确定]
查看VIP效果
[root @ nginx1 keepalived-1.2.13]#ip addr show dev eth0
2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1500 qdisc pfifo_fast状态UP qlen 1000
link / ether00:0c:29:7a:34:c4 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.101/24 brd192.168.200.255 scope global eth0
inet 192.168.200.253/32 scopeglobal eth0
inet6fe80 :: 20c:29ff:fe7a:34c4 / 64范围链接
valid_lftforever preferred_lft永远
[root@nginx2keepalived-1.2.13] #ip addr show dev eth0
2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1500 qdisc pfifo_fast状态UP qlen 1000
link / ether00:0c:29:42:62:29 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.102/24 brd192.168.200.255 scope global eth0
inet 192.168.200.254/32 scopeglobal eth0
inet6fe80 :: 20c:29ff:fe42:6229/64范围链接
valid_lftforever preferred_lft永远
安装配置JDK和Tomcat的服务器:
[root @ tomcat1〜]#rm -rf $(which java)
[root @ tomcat1〜]#tar xf jdk-7u65-linux-x64.tar.gz
[root @ tomcat1〜]#mv jdk1.7.0_65 / usr / local / java
[root @ tomcat1〜]#vim / etc / profile
添加
导出JAVA_HOME = / usr / local / java
exportPATH = $ PATH:$ JAVA_HOME / bin中
[root @ tomcat1〜]#source / etc / profile
[root @ tomcat1〜]#java -version
java版本“1.7.0_65”
Java(TM)SE运行时环境(build 1.7.0_65-b17)
Java HotSpot(TM)64位服务器虚拟机(构建24.65-b04,混合模式)
[root @ tomcat1〜]#tar xf apache-tomcat-7.0.54.tar.gz
[root @ tomcat1〜]#mv apache-tomcat-7.0.54 / usr / local / tomcat7
[root @ tomcat1〜]#/usr/local/tomcat7/bin/startup.sh
使用CATALINA_BASE:/ usr / local / tomcat7
使用CATALINA_HOME:/ usr / local / tomcat7
使用CATALINA_TMPDIR:/ usr / local / tomcat7 / temp
使用JRE_HOME:/ usr / local / java
使用CLASSPATH:/usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat开始了。
[root @ tomcat1〜]#netstat -anpt | grep:8080
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2734 / java
打开浏览器测试的Tomcat是否安装成功
建立的Java的网络站点:
首先在跟目录下建立一个web应用程序目录,用于存放网站文件
[root @ tomcat-1〜]#mkdir / webapp
在webapp1目录下建立一个index.jsp中的测试页面
[root @ tomcat-1〜]#vim /webapp/index.jsp
ServerInfo:
SessionID的:<%= session.getId()%>
点击
SessionIP:<%= request.getServerName()%>
点击
SessionPort:<%= request.getServerPort()%>
点击
<%
out.println(“server one”);
%>
修改的Tomcat的server.xml的文件
定义一个虚拟主机,并将网站文件路径指向已经建立的/ web应用,在主机段增加上下文段
[root @ tomcat1〜]#cp / usr / local / tomcat7 / conf / server.xml {,.bak}
[root @ tomcat1〜]#vim / usr / local / tomcat7 / conf / server.xml
124 <主机名=“本地主机”appBase =“ webapps ”
125 unpackWARs =“true”autoDeploy =“true”>
126 <上下文docBase =“ / webapp ”path =“”reloadable =“ flase ”>
127 </ Context>
docBase =“/ webapp”#web 应用的文档基准目录
path =“”#设置默认“类”
reloadable =“flase”#设置监视“类”是否变化
重新启动Tomcat的测试
Tomcat 2配置方法基本与Tomcat 1相同
安装JDK,配置Java环境,版本与Tomcat 1保持一致
安装Tomcat,版本与Tomcat 1保持一致
[root @ tomcat-2〜]#vim /webapp/index.jsp
ServerInfo:
SessionID的:<%= session.getId()%>
点击
SessionIP:<%= request.getServerName()%>
点击
SessionPort:<%= request.getServerPort()%>
点击
<%
out.println(“server two”);
%>
[root @ tomcat-2〜]#cp / usr / local / tomcat7 / conf / server.xml {,.bak}
[root @ tomcat-2〜]#vim / usr / local / tomcat7 / conf / server.xml
124 <主机名=“本地主机”appBase =“ webapps ”
125 unpackWARs =“true”autoDeploy =“true”>
126 <上下文docBase =“ / webapp ”path =“”reloadable =“ flase ”>
127 </ Context>
重新启动Tomcat的浏览器测试
[root @ tomcat-2〜]#/usr/local/tomcat7/bin/shutdown.sh
[root @ tomcat-2〜]#/usr/local/tomcat7/bin/startup.sh
Tomcat的配置相关说明
/ usr / local / tomcat7 #主目录
bin #存放windows或linux平台上启动或关闭的Tomcat的脚本文件
conf #存放Tomcat的各种全局配置文件,其中最主要的是server.xml和web.xml
lib #存放Tomcat运行需要的库文件(JARS)
logs #存放Tomcat执行时的LOG文件
webapps #Tomcat的主要Web发布目录(包括应用程序事例)
工作 #存放jsp编译后产生的类文件
[root @ tomcat-1〜]#ls / usr / local / tomcat7 / conf /
catalina.policy #权限控制配置文件
catalina.properties #Tomcat属性配置文件
context.xml #上下文配置文件(selinux)
logging.properties #日志日志相关配置文件
server.xml #主配置文件
tomcat-users.xml #manager-gui管理用户配置文件(Tomcat安装后生成的管理界面,该文件可开启访问)
web.xml #Tomcat的servlet,servlet-mapping,filter,MIME等相关配置
server.xml #主要配置文件,可修改启动端口,设置网站根目录,虚拟主机,开启https等功能。
server.xml中的结构构成
<服务器>
<业务>
<连接器/>
<发动机>
<主机>
<Context> </ Context>
</主机>
</发动机>
</服务>
</服务器>
<! - - >内的内容是注视信息
服务器
服务器元素代表了整个卡特琳娜的的Servlet容器
服务
服务是这样一个集合,它由一个或多个连接器组成,以及一个引擎,负责处理所有连接器所获得的客户请求。
连接器
一个连接器在某个指定端口上侦听客户请求,并将获得的请求交给引擎来处理,从发动机处获得回应并返回客户。
TomcatEngine有两个典型的连接器,一个直接侦听来自浏览器的HTTP请求,一个侦听来自其他Web服务器的请求
Coyote Http / 1.1 Connector在端口8009处听听来自其他的wenserver(Apache)的servlet / jsp代理请求。
发动机
发动机下可以配置多个虚拟主机虚拟主机,每个虚拟主机都有一个域名
当发动机获得一个请求时,它把该请求匹配到某一个主机上,然后把该请求交给该主机来处理,
引擎有一个默认的虚拟主机,当请求无法匹配到任何一个主机上的时候,将交给该默认主机来处理
主办
代表一个虚拟主机,虚拟主机,每个虚拟主机和某个网络域名域名相匹配
每个虚拟主机下都可以部署(部署)一个或多个Web应用程序,每个Web应用程序对应一个上下文,有一个Contextpath。
当主机获得一个请求时,将把该请求匹配到某个语境上,然后把该请求交给该上下文来处理,匹配的方法是最长匹配,所以一个路径==“”的背景下将成为该主机的默认上下文匹配。
上下文
一个Context对应一个Web应用程序,一个Web应用程序由一个或多个Servlet组成。
nginx1 / 2二台机器都执行监控Nginx的进程的脚本
脚本文件
[root @ nginx2 keepalived-1.2.13]#vim nginx_pidcheck
#!/斌/庆典
同时:
做
nginxpid =`ps-C nginx --no-header | wc -l`
如果[$ nginxpid -eq 0]
然后
/应用/ nginx的/ sbin目录/ nginx的
keeppid = $(ps -C keepalived --no-header | wc -l)
如果[$ keeppid -eq 0]
然后
/etc/init.d/keepalived启动
科幻
睡5
nginxpid =`ps -C nginx --no-header | wc -l`
如果[$ nginxpid -eq 0]
然后
/etc/init.d/keepalived stop
科幻
科幻
睡5
DONE
后台执行监控脚本
[root @ nginx1 keepalived-1.2.13]#sh nginx_pidcheck&
[1] 4325
查看端口
[root @ nginx1 keepalived-1.2.13]#netstat -anpt | grepnginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2730 / nginx
[root @ nginx1 keepalived-1.2.13]#killall -s QUITnginx
[root @ nginx1 keepalived-1.2.13]#netstat -anpt | grepnginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2730 / nginx
VIP转移测试
[root @ nginx1 keepalived-1.2.13] #ip addr show dev eth0
2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1500 qdisc pfifo_fast状态UP qlen 1000
link / ether00:0c:29:7a:34:c4 brd ff:ff:ff:ff:ff:ff
inet192.168.200.101 / 24 brd 192.168.200.255 scope global eth0
inet192.168.200.253 / 32 scope global eth0
inet6fe80 :: 20c:29ff:fe7a:34c4 / 64范围链接
valid_lftforever preferred_lft永远
[root @ nginx2 keepalived-1.2.13]#service keepalivedstop
停止keepalived:[确定]
[root @ nginx1 keepalived-1.2.13] #ip addr show dev eth0
2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1500 qdisc pfifo_fast状态UP qlen 1000
link / ether00:0c:29:7a:34:c4 brd ff:ff:ff:ff:ff:ff
inet 192.168.200.101/24 brd192.168.200.255 scope global eth0
inet 192.168.200.253/32 scopeglobal eth0
inet 192.168.200.254/32 scopeglobal eth0
inet6fe80 :: 20c:29ff:fe7a:34c4 / 64范围链接
valid_lftforever preferred_lft永远
部署安装的memcached
编译安装
[root @ tomcat1〜]#yum -y install gcc openssl-develpcre-devel zlib-devel
[root @ tomcat1〜]#tar xf libevent-2.0.15-stable.tar.gz
[root @ tomcat1〜]#cd libevent-2.0.15-stable
[root @ tomcat1 libevent-2.0.15-stable]#./configure--prefix=/usr/local/libevent && make && make install
[root @ tomcat1 libevent-2.0.15-stable]#cd
[root @ tomcat1〜]#tar xf memcached-1.4.5.tar.gz
[root @ tomcat1〜]#cd memcached-1.4.5
[root @ tomcat1 memcached-1.4.5]#./configure--prefix=/usr/local/memcached --with-libevent = / usr / local / libevent / && make && make install
[root @ tomcat1 memcached-1.4.5]#ldconfig -v | greplibevent
libevent-1.4.so.2-> libevent-1.4.so.2.1.3
libevent_extra-1.4.so.2-> libevent_extra-1.4.so.2.1.3
libevent_core-1.4.so.2-> libevent_core-1.4.so.2.1.3
[root @ tomcat1 memcached-1.4.5]#/ usr / local / memcached / bin / memcached -u root -m512M -n 10 -f 2 -d -vvv -c 512
/ usr / local / memcached / bin / memcached:加载共享库时出错:libevent-2.0.so.5:无法打开共享目标文件:没有这样的文件或目录
[root @ tomcat1 memcached-1.4.5]#vim /etc/ld.so.conf
包括ld.so.conf.d / *。conf
在/ usr /本地/ libevent的/ lib目录/
[root @ tomcat1 memcached-1.4.5]#ldconfig
启动memcached的
[root @ tomcat1 memcached-1.4.5]#/ usr / local / memcached / bin / memcached -u root -m 512M -n 10 -f 2 -d -vvv -c 512
选项:
-h#查看帮助信息
-p#指定memcached监听的端口号默认11211
-l #memcached 服务器的ip地址
-u #memcached 程序运行时使用的用户身份必须是root用户
-m#指定使用本机的多少物理内存存数据默认64M
-c #memcached 服务的最大链接数
-vvv#显示详细信息
-n #chunk size 的最小空间是多少单位字节
-f #chunk size 大小增长的倍数默认1.25倍
-d#在后台启动
另开一个终端测试端口
[root @ tomcat1〜]#netstat -anpt | grep:11211
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 10316 / memcached
测试memcached的能否存取数据
[root @ nginx1 keepalived-1.2.13]#telnet192.168.200.103 11211
尝试192.168.200.103 ...
连接到192.168.200.103。
转义字符是'^]'。
setusername 0 0 8
张三
STORED
getusername
VALUE用户名0 8
张三
结束
放弃
外部主机关闭连接。
最后执行让Tomcat-1 Tomcat-2通过(msm)连接到Memcached
将会话包中的“* .jar复制到/ usr / local / tomcat7 / lib /下面
[root @ tomcat-1〜]#cp session / * / usr / local / tomcat7 / lib /
编辑tomcat配置文件连接指定的memcached服务器
tomcat-1 和tomcat-2 配置文件一模一样,都按照一下样例写
[root @ tomcat-1〜]#vim / usr / local / tomcat7 / conf / context.xml
<背景>
<Manager className =“de.javakaffee.web.msm.MemcachedBackupSessionManager”
memcachedNodes = “MEMA:192.168.200.103:11211memB:192.168.200.104:11211”
requestUrilgnorePattern = “* \。(ICO | PNG | GIF | JPG | CSS | JS)$”
transcoderFactoryClass = “de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory”
/>
</上下文>
[root @ tomcat-2〜]#vim / usr / local / tomcat7 / conf / context.xml
<背景>
<Manager className =“de.javakaffee.web.msm.MemcachedBackupSessionManager”
memcachedNodes = “MEMB:192.168.200.104:11211memA:192.168.200.103:11211”
requestUrilgnorePattern = “* \。(ICO | PNG | GIF | JPG | CSS | JS)$”
transcoderFactoryClass = “de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory”
/>
</上下文>
重启tomcat的查询结果
[root @ tomcat-1〜]#/usr/local/tomcat7/bin/shutdown.sh
[root @ tomcat-1〜]#/usr/local/tomcat7/bin/startup.sh
如果成功,tomcat的与Memcached的端口会连在一起,前后有变化
Tomcat的1 与Tomcat的2如下图
[root @ tomcat1〜]#netstat -anpt | grep java
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 10665 / java
tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN 10665 / java
tcp 0 0 0.0.0.0:8009 0.0.0.0:* LISTEN 10665 / java
tcp 0 0192.168.200.103:31345 192.168.200.103:11211 ESTABLISHED 10665 / java
tcp 0 0192.168.200.103:31341 192.168.200.103:11211 ESTABLISHED10665 / java
tcp 0 0192.168.200.103:55980 192.168.200.104:11211 ESTABLISHED 10665 / java
tcp 0 0192.168.200.103:55978 192.168.200.104:11211 ESTABLISHED 10665 / java
[root @ tomcat1〜]#netstat -anpt | grep:11211
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 10605 / memcached
tcp 0 0192.168.200.103:31345 192.168.200.103:11211 ESTABLISHED 10665 / java
tcp 0 0192.168.200.103:11211 192.168.200.103:31341 ESTABLISHED 10605 / memcached
tcp 0 0192.168.200.103:31341 192.168.200.103:11211 ESTABLISHED 10665 / java
tcp 0 0 192.168.200.103:55980 192.168.200.104:11211 ESTABLISHED 10665 / java
打开浏览器测试
由于权重相同,页面会反复切换一/二
远程同步备份
rsync的命令的基本用法:
格式:rsync【选项】源文件目标文件
常见的选项:
-a,--archive(存档)归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于加了参数-rlptgoD
-r,--recursive对子目录以递归模式处理
-l, - 链接表示拷贝链接文件
-p,--perms表示保持文件原有权限
-t,--times表示保持文件原有时间
-g,--group表示保持文件原有属用户组
-o,--owner表示保持文件原有属主
-D,--devices表示块设备文件信息
-z,--compress表示压缩传输
-H表示硬链接文件
-A保留ACL属性信息
-P显示传输进度
-u --update仅仅进行更新,也就是跳过所有已经存在于目标位置,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
--port = PORT指定其他的rsyncc服务端口873
- 删除哪些目标位置有原始位置没有的文件
--password-file = FILE从FILE中得到密码
--bwlimit = KBPS限制I / O带宽,KB /秒
--filter“ - 文件名”需要过滤的文件
--exclude =:需要过滤的文件
-v显示同步过程的详细信息
环境
tomcat1同步源192.168.200.103
tomcat2同步目标192.168.200.104
同步tomcat1的/ web应用到tomcat2的/ web应用
安装的rsync
[root @ tomcat1〜]#rpm -qf`which rsync`
rsync的-3.0.6-9.el6_4.1.x86_64
[root @ tomcat1〜]#rpm -ivh / media / cdrom / Packages / rsync-3.0.6-9.el6_4.1.x86_64.rpm
准备... ########################################### [100% ]
packagersync-3.0.6-9.el6_4.1.x86_64已经安装
安装xinetd的服务来管理的rsync服务
[root @ tomcat1〜]#rpm -ivh / media / cdrom / Packages / xinetd-2.3.14-39.el6_4.x86_64.rpm
准备... ########################################### [100% ]
1:xinetd ########################################### [100%]
开启rsync的服务
[root @ tomcat1〜]#vim /etc/xinetd.d/rsync
修改:disable = yes
为:disable = no
[root @ tomcat1〜]#/etc/init.d/xinetd restart
停止xinetd:[失败]
正在启动xinetd:[确定]
查看是否支持inotify的,从kernel2.6.13开始正式并入内核。
[root @ tomcat1〜]#uname -r
2.6.32-431.el6.x86_64
[root @ tomcat1〜]#ll / proc / sys / fs / inotify /
总用量0
-rw-r - r-- 1 root root 0 4月16 19:09 max_queued_events
-rw-r - r-- 1 root root 0 4月16 19:09 max_user_instances
-rw-r - r-- 1 root root 0 4月16 19:09 max_user_watches
注:在Linux的内核中,默认的inotify的机制提供了三个调控参数
max_queued_events#表示监控事件队列
max_user_instances#表示最多监控实例数
max_user_watches#表示每个实例最多监控文件数
查看具体参数值
[root @ tomcat1〜]#cat / proc / sys / fs / inotify / max_queued_events
16384
[root @ tomcat1〜]#cat / proc / sys / fs / inotify / max_user_instances
128
[root @ tomcat1〜]#cat / proc / sys / fs / inotify / max_user_watches
8192
注:当要监控的目录,文件数量较多或者变化较频繁时,要加大这三个参数的值
修改的/etc/sysctl.conf配置文件
[root @ tomcat1〜]#vim /etc/sysctl.conf
文件最后添加以下内容
fs.inotify.max_queued_events = 32768
fs.inotify.max_instances = 1024
fs.inotify.max_user_watches = 90000000
[root @ tomcat1〜]#sysctl -p#修改后使用sysctl.conf文件生效
[root @ tomcat1〜]#cat / proc / sys / fs / inotify / max_user_watches#查看是否修改成功
90000000
做SSH密钥认证
[root @ tomcat1〜]#ssh-keygen
生成公钥/私钥rsa密钥对。
输入保存密钥的文件(/root/.ssh/id_rsa):
输入密码(没有密码时为空):
再次输入相同的密码:#回车
您的身份已保存在/ root / .ssh / id_rsa中。
您的公钥已保存在/ root / .ssh / id_rsa.pub中。
关键指纹是:#回车
9F:BF:BD:15:E0:DD:07:63:6C:08:43:4C:A7:C9:d6中:e2root @ tomcat1
钥匙的randomart图像是:#回车
+ - [RSA 2048] ---- +
| + =。|
| ..Bo |
| * o。* |
| o..ooo。|
| SE。OO |
| .. o |
| o。|
| 。.. |
| oo |
+ ----------------- +
[root @ tomcat1〜]#ssh-copy-id root@192.168.200.104
主机'192.168.200.104(192.168.200.104)'的真实性无法建立。
RSA密钥指纹是98:22:6a:f2:64:d6:e8:98:b7:c9:7b:58:b7:03:a8:9b。
你确定要继续连接吗(是/否)?是
警告:将“192.168.200.104”(RSA)永久添加到已知主机的列表中。
root@192.168.200.104的密码: #输入主机tomcat2 的root 密码
现在尝试使用“ssh'root@192.168.200.104'”登录到机器中,然后检入:
的.ssh / authorized_keys中
以确保我们没有添加额外的密钥,而您并不期待。 #成功标志
测试,不输入密码直接登录和备份
[root @ tomcat1〜]#mkdir / xiaoyi
[root @ tomcat1〜]#cd / xiaoyi /
[root @ tomcat1xiaoyi]#touch wolf.txt
[root @ tomcat1 xiaoyi]#ls
wolf.txt
[root @ tomcat1 xiaoyi]#cd
[root @ tomcat1〜]#rsync -azP / xiaoyi root@192.168.200.104:/ opt
发送增量文件列表
孝义/
孝义/ wolf.txt
0100%0.00kB / s 0:00:00(xfer#1,to-check = 0/2)
发送了97个字节,收到35个字节88.00字节/秒
总大小为0加速比为0.00
tomcat2上测试
[root @ tomcat2〜]#ls / opt / xiaoyi /
wolf.txt
安装inotify工具
安装inotify工具后,将拥有inotifywait,inotifywatch辅助工具程序,从而来监控,汇总文件系统改动情况
[root @ tomcat1〜]#tar xf inotify-tools-3.14.tar.gz
[root @ tomcat1〜]#cd inotify-tools-3.14
[root @ tomcat1〜]#./configure && make && make install
测试
使用inotifywait命令监控网站目录/ web应用发生的变化。然后在另一个终端向/ web应用目录下添加,移动文件,查看屏幕输出结果。
[root @ tomcat1〜]#inotifywait -mrq -ecreate,move,delete,modify,attrib / webapp /
常用参数:
-e 用来指定要监控哪些事件
这些事件包括:创建创建,移动移动,删除删除,修改修改文件内容,ATTRIB属性更改
-m 标识持续监控
-r 标识递归整个目录
-q 标识简化输出信息
编写触发式同步脚本
[root @ tomcat1〜]#vim a.sh
#!/斌/庆典
inotifywait -mrq -ecreate,移动,删除,修改,attrib / webapp / | 同时阅读abc
做
rsync-azP / webapp / root@192.168.200.104:/ webapp /
DONE
测试
执行脚本
[root @ tomcat1〜]#bash a.sh
另开一个终端
[root @ tomcat1〜]#cd / webapp /
[root @ tomcat1 webapp]#mkdir a
查看变化
[root @ tomcat1〜]#bash a.sh
发送增量文件列表
./
的index.jsp
179100%0.00kB / s 0:00:00(xfer#1,to-check = 2/4)
一个/
测试/
发送251字节收到48个字节598.00bytes /秒
总大小是179加速是0.60
查看tomcat2上的变化
[root @ tomcat2 webapp]#ls
一个 index.jsp测试