设为首页 收藏本站
查看: 2189|回复: 0

[经验分享] rsync同步数据到内网

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-9 09:50:23 | 显示全部楼层 |阅读模式
最近公司要求将IDC的APP日志备份到公司办公网内部,思前想后,结果以前学过的知识,决定用rsync直接推送,即从APP服务器上直接将日志推送到公司内网。这样避免了在生产服务器上额外安装更多软件而且只需要进行简单的配置,从运维的角度看简化了排错步骤,同时降低了安全风险,简要网络拓扑图如下:





QQ截图20151109095012.png
提示:办公区服务器192.168.1.202上的rsync服务端口为873,映射到公网10.0.0.10上的端口为51873

实验环境
IDC机房内网服务器:
[iyunv@server101 ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[iyunv@server101~]# uname -m
x86_64
[iyunv@Fabric-64 ~]
[iyunv@server101 ~]# uname -r
2.6.32-358.el6.x86_64
[iyunv@server101 ~]#
[iyunv@server101 ~]#ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:50:56:90:A1:DA  
          inet addr:192.168.168.101  Bcast:192.168.168.255  Mask:255.255.255.0


公司办公区机房内部服务器:
[iyunv@server202 ~]# cat /etc/redhat-release
CentOS release 6.4 (Final)
[iyunv@server202~]# uname -m
x86_64
[iyunv@Fabric-64 ~]
[iyunv@server202 ~]# uname -r
2.6.32-358.el6.x86_64
[iyunv@server202 ~]#
[iyunv@server202 ~]#ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:50:56:90:A1:DA  
          inet addr:192.168.1.202 Bcast:192.168.168.255  Mask:255.255.255.0
说明:这里规定公司办公区服务器作为rsync的服务端,所以rsync的主服务程序运行在192.268.1.202上,数据流向是从IDC机房内部服务器到办公网内部服务器

rsync服务端进行配置

①rsync服务配置文件如下:
[iyunv@server1-202 ~]# vim /etc/rsyncd.conf
#rsync_config
uid = www
gid = www
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[datacenter]
path = /data/datacenter/apps/approval
ignore errors
read only = false
list = false
#hosts allow = 0.0.0.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[iyunv@server1-202 ~]#

②密码文件内容如下:
[iyunv@server1-202 ~]# cat /etc/rsync.password
rsync_backup:123456
[iyunv@server1-202 ~]#

③密码文件权限设置为600:
[iyunv@server1-202 ~]# chmod 600 /etc/rsync.password
[iyunv@server1-202 ~]# ll /etc/rsync.password
-rw------- 1 root root 23 Nov  6 10:57 /etc/rsync.password
[iyunv@server1-202 ~]#

④以守护进程的模式启动rsync(daemon模式)
[iyunv@server1-202 ~]# rsync --daemon --config=/etc/rsyncd.conf
[iyunv@server1-202 ~]#
[iyunv@server1-202 ~]# ps -ef|grep rsync
root     18170     1  0 12:27 ?        00:00:00 rsync --daemon --config=/etc/rsyncd.conf
root     19989 19916  0 16:51 pts/0    00:00:00 grep rsync
[iyunv@server1-202 ~]#

客户端安装配置
配置之前查看是否安装rsync
[iyunv@server101 ~]# rpm -q rsync
rsync-3.0.6-9.el6.x86_64
[iyunv@server101 ~]#
创建密码文件,因为客户端只需要指定登录密码即可,该密码与服务端的密码配置文件中的密码要一致
[iyunv@server101 ~]# echo '123456' >/etc/rsync.password
[iyunv@server101 ~]#
同时给密码文件授权600
[iyunv@server101 ~]# chmod 600 /etc/rsync.password
[iyunv@server101 ~]# ll /etc/rsync.password
-rw------- 1 root root 10 11月  6 10:58 /etc/rsync.password
[iyunv@server101 ~]#

测试同步结果:
[iyunv@server101 ~]# rsync -avz /etc/hosts --port=51873 rsync_backup@20.0.0.20::datacenter --password-file=/etc/rsync.password                                                           sending incremental file list
hosts

sent 734 bytes  received 27 bytes  1522.00 bytes/sec
total size is 3117  speedup is 4.10
[iyunv@server101 ~]#

服务端202上查看同步结果:
[iyunv@server1-202 approval]# pwd
/data/datacenter/apps/approval
[iyunv@server1-202 approval]#
[iyunv@server1-202 approval]# ll
-rw-r--r-- 1 www www       3117 Oct 29 14:13 hosts
[iyunv@server1-202 approval]#
发现文件hosts已经同步到rsync服务器的目录/data/datacenter/apps/approval,至此数据同步完成解析来做定时任务

设置定时任务,让该任务在每天晚上凌晨1点开始执行同步前一天的数据:
[iyunv@server101 ~]#mkdir /server/scripts
[iyunv@server101 ~]#cd /server/scripts
[iyunv@server101 ~]#vim rsync-log.sh
#!/bin/bash
rsync -avz /usr/local/nginx/logs/app_$(date -d "1 day ago"  +%Y-%m-%d).log --port=51873 rsync_backup@20.0.0.20::datacenter --password-file=/etc/rsync.password
[iyunv@server101 ~]#

注意:这里不要忘记了给rsync-log.sh赋予可执行权限
[iyunv@server101 ~]#chmod +x rsync-log.sh
[iyunv@server101 ~]#
[iyunv@server101 ~]#crontab -e
#rsync app logs to datacenter every 01:00:00
* 01 * * * /bin/sh /server/scripts/rsync-log.sh >/dev/null 2>&1
[iyunv@server101 ~]#
保存,重启crontab服务
[iyunv@server101 ~]#
[iyunv@server101 ~]# /etc/init.d/crond restart
停止 crond:                                               [确定]
正在启动 crond:                                           [确定]
[iyunv@server101 ~]#

至此rsync实现远程日志文件同步实验配置完成,如有不妥请各位多多指点!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-136878-1-1.html 上篇帖子: CentOS5.4安装samba服务 下篇帖子: ubuntu关于pam_tally2计数器在每次sudo时都增加的bug
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表