飘易博客(作者:Flymorn)
订阅《飘易博客》RSS,第一时间查看最新文章!
飘易首页 | 留言本 | 关于我 | 订阅Feed

linux下使用rsync同步不同服务器上数据

Author:飘易 Source:飘易
Categories:Linux技术 PostTime:2016-10-18 10:58:09
正 文:

linux下检查rsync是否安装命令:

rpm -qa|grep rsync

飘易使用的环境是Centos 6.5 64位,web环境是LNMPA1.2一键包,默认已安装rsync,版本是 rsync-3.0.6-9.el6_4.1.x86_64。


前提,飘易使用rsync同步数据的目的是用于负载均衡,搭建多台ECS服务器的时候使用,需要注意的地方是:需要把程序文件和数据库、静态资源分离,数据库采用阿里云的RDS,资源文件采用阿里云的对象存储OSS(存放图片、附件等),这样存放程序的服务器就可以横向扩展。


同步主服务器】:

1、创建2个文件,分别为:

rsync配置文件:/etc/rsyncd.conf 内容为:

#location: /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
port = 873 #服务端口,默认873
#address = 0.0.0.0 #监控的ip地址
uid = root
gid = root
use chroot = yes
read only = yes
#日志
#transfer logging = yes
#log file = /var/log/rsync.log
list = yes
ignore errors
auth users = tb
secrets file = /etc/rsyncd.secrets
#同步目录
[wwwroot]
path = /home/wwwroot
#排除-相对路径,多个空格隔开
#exclude = default/
[apache]
path = /usr/local/apache/conf/vhost
[nginx]
path = /usr/local/nginx/conf/vhost


密码文件/etc/rsyncd.secrets 内容为:

tb:tbpassword

格式为用户名:密码


2、设置权限600

chmod 600 /etc/rsyncd.secrets #主服务端



3、操作命令

启动命令:

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

加入开机启动:

echo "/usr/bin/rsync --daemon --config=/etc/rsyncd.conf" >>/etc/rc.local

查看端口是否运行[rsync端口873]:

netstat -nltp | grep 873

杀死运行着的rsync,先查找,再kill:

ps -ef | grep rsync | grep -v grep
kill 进程id号

或者直接杀死全部rsync进程:

killall rsync



同步从服务器】:

1、创建密码文件 /etc/rsync.passwd 文件内容为主服务器里的 /etc/rsyncd.secrets 的对应密码:

tbpassword


2、设置权限600

chmod 600 /etc/rsync.passwd #从服务器


3、操作命令


手动同步命令(-v显示详细信息):

rsync -azp --delete --password-file=/etc/rsync.passwd tb@10.25.9.100::wwwroot /home/wwwroot

其中tb为同步的用户名,10.25.9.100为主服务器的内网IP(不走公网),wwwroot为主服务器里 /etc/rsyncd.conf 配置的对应的区块名称,最后的 /home/wwwroot 为要同步的从服务器上的物理路径。



[可选]通过crontab定期执行任务,实现数据定期同步(每小时)。

crontab -e
0 * * * * rsync -azp --delete --password-file=/etc/rsync.passwd tb@10.25.9.100::wwwroot /home/wwwroot &>>/var/log/rsync.log


开机启动时自动从源服务器下载文件

开机启动:/etc/rc.local 文件最后加入以下命令:

rsync -azp --delete --password-file=/etc/rsync.passwd tb@10.25.9.100::wwwroot /home/wwwroot

或写日志方式:

rsync -azvp --delete --password-file=/etc/rsync.passwd tb@10.25.9.100::wwwroot /home/wwwroot &>>/var/log/rsync.log


说明:/etc/rc.local 系统默认软连接指向:/etc/rc.d/rc.local


LNMPA多主机头

apache虚拟主机配置文件路径:/usr/local/apache/conf/vhost/

nginx虚拟主机配置文件路径:/usr/local/nginx/conf/vhost/


同步apache配置文件:

rsync -azp --delete --password-file=/etc/rsync.passwd tb@10.25.9.100::apache /usr/local/apache/conf/vhost

同步nginx配置文件:

rsync -azp --delete --password-file=/etc/rsync.passwd tb@10.25.9.100::nginx /usr/local/nginx/conf/vhost

如果配置文件有修改,最后需要重启lnmp:

lnmp restart


制作从服务器的自定义镜像注意点

开机启动文件 /etc/rc.local 里:rsync不启用服务器--daemon模式, 而启用从服务器同步方式;


其他注意说明】:

1、RDS数据库的白名单要加入新ECS的内网IP(从服务器);

2、Laravel框架需要开启的PHP函数: exec(),proc_open(),proc_get_status()

3、Laravel框架的storage目录需要777权限:

chmod -R 777 /home/wwwroot/www.xxx.cn/storage/

4、如有计划任务,只需要在主服务器上执行,避免重复执行!


作者:飘易
来源:飘易
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。
上一篇:没有了
下一篇:CENTOS 6.5安装ffpmeg和 ffmpeg-php 扩展(LNMPA)的方法
0条评论 “linux下使用rsync同步不同服务器上数据”
No Comment .
发表评论
名称(*必填)
邮件(选填)
网站(选填)

记住我,下次回复时不用重新输入个人信息
© 2007-2019 飘易博客 Www.Piaoyi.Org 原创文章版权由飘易所有