rsync同步数据到内网

简介:

  最近公司要求将IDC的APP日志备份到公司办公网内部,思前想后,结合以前学过的知识,决定用rsync直接推送,即从APP服务器上直接将日志推送到公司内网。这样避免了在生产服务器上额外安装更多软件而且只需要进行简单的配置,从运维的角度看简化了排错步骤,同时降低了安全风险,简要网络拓扑图如下:


  



wKioL1Y8ZwuQdgUWAAM3QUpKb9s768.jpg

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


实验环境

IDC机房内网服务器:

1
2
3
4
5
6
7
8
9
10
11
[root@server101 ~] # cat /etc/redhat-release 
CentOS release 6.4 (Final)
[root@server101~] # uname -m
x86_64
[root@Fabric-64 ~]
[root@server101 ~] # uname -r
2.6.32-358.el6.x86_64
[root@server101 ~] #
[root@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

公司办公区机房内部服务器:

1
2
3
4
5
6
7
8
9
10
11
[root@server202 ~] # cat /etc/redhat-release 
CentOS release 6.4 (Final)
[root@server202~] # uname -m
x86_64
[root@Fabric-64 ~]
[root@server202 ~] # uname -r
2.6.32-358.el6.x86_64
[root@server202 ~] #
[root@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服务配置文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@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
[root@server1-202 ~] #



②密码文件内容如下:

1
2
3
[root@server1-202 ~] # cat /etc/rsync.password 
rsync_backup:123456
[root@server1-202 ~] #

③密码文件权限设置为600:

1
2
3
4
[root@server1-202 ~] # chmod 600 /etc/rsync.password 
[root@server1-202 ~] # ll /etc/rsync.password 
-rw------- 1 root root 23 Nov  6 10:57  /etc/rsync .password
[root@server1-202 ~] #


④以守护进程的模式启动rsync(daemon模式)

1
2
3
4
5
6
7
[root@server1-202 ~] # rsync --daemon --config=/etc/rsyncd.conf
[root@server1-202 ~] #
[root@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
[root@server1-202 ~] #

客户端安装配置

配置之前查看是否安装rsync

1
2
3
[root@server101 ~] # rpm -q rsync
rsync -3.0.6-9.el6.x86_64
[root@server101 ~] #


创建密码文件,因为客户端只需要指定登录密码即可,该密码与服务端的密码配置文件中的密码要一致

1
2
[root@server101 ~] # echo '123456' >/etc/rsync.password
[root@server101 ~] #


同时给密码文件授权600

1
2
3
4
[root@server101 ~] # chmod 600 /etc/rsync.password
[root@server101 ~] # ll /etc/rsync.password 
-rw------- 1 root root 10 11月  6 10:58  /etc/rsync .password
[root@server101 ~] #



测试同步结果:

1
2
3
4
5
6
[root@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
[root@server101 ~] #


 

服务端202上查看同步结果:

1
2
3
4
5
6
[root@server1-202 approval] # pwd
/data/datacenter/apps/approval
[root@server1-202 approval]
[root@server1-202 approval] # ll
-rw-r--r-- 1 www www       3117 Oct 29 14:13 hosts
[root@server1-202 approval] #


 发现文件hosts已经同步到rsync服务器的目录/data/datacenter/apps/approval,至此数据同步完成解析来做定时任务


设置定时任务,让该任务在每天晚上凌晨1点开始执行同步前一天的数据:

1
2
3
4
5
6
7
[root@server101 ~] #mkdir /server/scripts
[root@server101 ~] #cd /server/scripts
[root@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
[root@server101 ~] #

注意:这里不要忘记了给rsync-log.sh赋予可执行权限

1
2
3
4
5
6
[root@server101 ~] #chmod +x rsync-log.sh
[root@server101 ~]
[root@server101 ~] #crontab -e
#rsync app logs to datacenter every 01:00:00
* 01 * * *  /bin/sh  /server/scripts/rsync-log .sh > /dev/null  2>&1
[root@server101 ~] #


保存,重启crontab服务

1
2
3
4
5
[root@server101 ~] #
[root@server101 ~] # /etc/init.d/crond restart
停止 crond:                                     [确定]
正在启动 crond:                                  [确定]
[root@server101 ~] #

cp 与 rsync 同名目录同步覆盖关系 

同名目录同步覆盖方法:

1、cp -rp dir1/*  dir2/


同名不覆盖不提示:yes no| cp -rp dir1/*  dir2/

同名覆盖不提示:\cp -rp dir1/*  dir2/


2、rsync -avz dir1/ dir2/     

 or  rsync -avz dir1/*  dir2/


同名同步后不删除:rsync -avz dir1/* dir2/

同名同步后删除dir1同步过去的原文件 :rsync -avz dir1/* dir2/ --remove-sent-files


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




      本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1710413,如需转载请自行联系原作者



相关文章
|
JSON 移动开发 缓存
20+个可视化搭建工具,一次玩个够
无论大公司还是小公司,我们开发前端工程时候,项目工程又很多类似的功能或者页面,开发经常是加班加点搬砖去做一些无成长反复操作的工作,看键盘上 ctrle 键已经被磨掉了漆,C 和V 也马上磨白了,那对于开发如何把这些重复的工作用机器去解决?在前端资源紧缺的情况下,是否可直接有工具直接就可以搭建出我想要的前端页面?于是业界的页面可视化搭建工具就出现了,本文会介绍目前最流行的页面可视化搭建工具,也会提供一些开源的可视化搭建项目供大家参考。
3107 0
20+个可视化搭建工具,一次玩个够
|
存储 人工智能 编译器
C/C++期末考试复习---知识点+习题
C/C++期末考试复习---知识点+习题
2092 2
|
8月前
|
人工智能 自然语言处理 算法
AISEO咋做?2025年用AI优化SEO和GEO 的步骤
AISEO是AI与SEO结合的优化技术,通过人工智能生成关键词、标题、内容等,提升网站排名。它支持多语言、自动化创作,并利用高权重平台发布内容,让AI搜索更易抓取引用,实现品牌曝光与流量增长。
1791 10
|
存储 编解码 数据可视化
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
Hi-C 数据的可视化与注释
|
数据采集 缓存 搜索推荐
NewsNow:开源个性化新闻聚合平台
NewsNow是一个功能强大且易于上手的新闻聚合项目,通过简单的部署步骤,你就可以拥有一个属于自己的个性化新闻聚合平台。无论是学习TypeScript、了解Web开发,还是打造专属的新闻阅读工具,NewsNow都是一个不错的选择。
1184 2
NewsNow:开源个性化新闻聚合平台
|
Ubuntu Linux 开发工具
ubuntu linux搭建lvgl
ubuntu linux搭建lvgl
1220 6
|
机器学习/深度学习 算法 计算机视觉
基于多注意力融合的抗遮挡目标跟踪算法综述
基于多注意力融合的抗遮挡目标跟踪算法综述
1118 0
基于多注意力融合的抗遮挡目标跟踪算法综述
|
存储 传感器 缓存
Nvidia Isaac Sim安装与配置 入门教程 2024(2)
本文是Nvidia Isaac Sim安装与配置的入门教程,指导用户如何检查系统配置、安装Omniverse环境、配置Nucleus服务器、安装Isaac Sim软件包、设置命令行环境和编辑器环境,以及如何启动Isaac Sim仿真和加载机器人与环境。
6809 0
vscode——Prettier插件保存自动格式化
vscode——Prettier插件保存自动格式化
1494 0