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

推荐订阅源

博客园 - 三生石上(FineUI控件)
博客园 - 叶小钗
博客园 - 聂微东
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Recent Announcements
Recent Announcements
IT之家
IT之家
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
爱范儿
爱范儿
Vercel News
Vercel News
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
U
Unit 42
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
F
Fortinet All Blogs
V
Visual Studio 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

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