惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
V
V2EX
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
小众软件
小众软件
Vercel News
Vercel News
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
J
Java Code Geeks
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
B
Blog
美团技术团队
量子位

博客园 - 风与叶子

flutter event_bus 底层技术 Linux libreoffice安装 word转pdf 中文乱码(缺少字体解决) 设计短链接(short URL)系统 羊了个羊小程序通关脚本 Nginx反向代理location与proxy_pass配置规则总结 mysql 删除异常进程脚本 docker 设置国内镜像源 python2.7 升级到 python3.6 aliyun OOS 资源同步【ossutil】 shell之文件路径截取 获取淘宝订单的解决方案——转 mysql实例的连接数max_user_connections 和max_connections 配置的那些事 Git log怎么查看分支提交过哪些文件 一篇文章搞定Git——Git代码管理及使用规范 小程序获取手机号 thinkphp3.2.3 CentOS7 YUM 安装MongoDB 4.0 shell 下载aliplayer 的视频 使用iptables给特定IP或端口限流 Nginx1.14.0+ModSecurity实现简单的WAF
多台centos服务器同步更新代码文件
风与叶子 · 2020-01-14 · via 博客园 - 风与叶子

利用Rsync服务让SLB下多台centos服务器文件同步更新
因为易淘帮使用了SLB负载均衡,为了保证SLB下两台服务器下面的网站文件同步,易淘帮采用了rsync服务进行同步,并进行了每三分钟同步一次。根据这样操作可以完美的使用slb服务,实现负载均衡、容灾恢复。
一. 介绍
rsync – remote synchronize是类unix系统下的数据镜像备份工具,它的特性如下:

  1. 可以镜像保存整个目录树和文件系统。
  2. 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
  3. 无须特殊权限即可安装。
  4. 快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
  5. 安全:可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
  6. 支持匿名rsync 同步文件,是理想的镜像工具。
    二. 安装

检测是否安装rsync服务
rpm -qa|grep rsync
服务端和客户端安装rsync
yum -y install rsync
也可以源码安装
rsync下载地址:http://rsync.samba.org/
`./configure
make && make install`
我们将SLB下面两台服务器分为服务器A与服务器B,服务器A为主服务器,但是需要注意的是必须在服务器A(100.xxx.xxx.1)和 B(100.xxx.xxx.2)上都安装rsync,其中A服务器上是以服务器模式运行rsync,而B上则以客户端方式运行rsync。这样在web 服务器A上运行rsync守护进程,在B上定时运行客户程序来备份web服务器A上需要备份的内容。
三. 服务器A配置

vi /etc/rsyncd.conf #根据你自己的rsyncd.conf文件所以目录而定
#[globale]
strict modes = yes
port = 873
uid = root
gid = root
user chroot = no
max connections = 5                 #同时的最大连接数
timeout = 600
pid file = /var/run/rsyncd.pid      #进程的pid存放文件位置
lock file = /var/run/rsyncd.lock    #lock文件位置
log file = /var/log/rsyncd.log      #日志文件位置
 
[eeetb.com-rsyncd]                          #建立一个备份名,服务器B通过该名称指定具体的备份位置,可自定义
path=/home/wwwroot                 #备份文件存放的目录位置
ignore errors
read only = no
list = no
hosts allow = 100.xxx.xxx.2       #允许服务器B地址,如果是内网可以使用内网IP
auth users = root                   #允许那些用户,这里的用户test的信息存放在/etc/rsyncd.password
secrets file = /etc/rsyncd.password #指定允许的用户和用户密码

建立用户密码文件:
`vi /etc/rsyncd.password
root:123456 #允许的用户和密码`
修改防火墙策略,允许873端口(tcp/udp)
`vi /etc/sysconfig/iptables #加入下面的规则
-A INPUT -s 100.xxx.xxx.2 -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT #授权B服务器访问A服务器873端口`
启动服务器端
`/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
添加rsyncd开机自启动
echo '/usr/bin/rsync --daemon --config=/etc/rsyncd.conf' >> /etc/rc.local`
四. 服务器B配置

vi /etc/rsyncd.password
123456  #服务器A设置的密码
chmod 600 /etc/rsyncd.password  

设置每天自动同步任务

crontab -e #(可以定时每三分钟同步一次文件)加入下方内容
*/3 * * * * /usr/bin/rsync -avzP --delete --progress --exclude=排除的不需同步目录 --password-file=/etc/rsyncd.password root@100.xxx.xxx.1::eeetb-rsync /home/wwwroot > /dev/null 2>&1

重新修改一下每天同步任务,修复原任务无法同步问题