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

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


实验环境

IDC机房内网服务器:

[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

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

[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服务配置文件如下:

[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 ~]#

②密码文件内容如下:

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

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

[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模式)

[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

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

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

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

同时给密码文件授权600

[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 ~]#

测试同步结果:

[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上查看同步结果:

[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点开始执行同步前一天的数据:

[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赋予可执行权限

[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服务

[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实现远程日志文件同步实验配置完成,如有不妥请各位多多指点!

转载于:https://blog.51cto.com/ucode/1710413

rsync同步数据到内网相关推荐

  1. 命令行net time同步时间(内网)(转载)

    命令行net time同步时间(内网)(转) 本文转载,方便自己使用查询 出处:https://www.cnblogs.com/mq0036/p/8945653.html 首先还是推荐大家使用Inte ...

  2. 群晖同步数据到天翼网盘

    前言 最近辉哥一直在寻求将群晖上的数据同步到天翼网盘的解决方案,不管是谷歌还是bing还有百度最终没有找到合适的解决方案,在千钧一发之际,辉哥想到了之前搭建的alist支持对接天翼网盘而且也支持web ...

  3. rsync同步数据带端口同步加-e参数

    rsync在ssh认证方式下,可通过系统用户进行认证,即在rsync上通过ssh隧道进行传输,类似于scp工具. 此时同步操作不在局限于rsync中定义的同步文件夹.注意:ssh认证方式,不需要服务器 ...

  4. rsync 同步数据记录_非初学者指南与Rsync同步数据

    rsync 同步数据记录 The rsync protocol can be pretty simple to use for ordinary backup/synchronization jobs ...

  5. CentOS5.6下配置rsync内网同步数据到外网

    一.需求 卫士那边有一个需求,就是要把一台内网服务器的数据同步到外网的一台服务器上,之前我用的是rsync+intify-tool+ssh实现的实时同步更新,前几天我还在东莞出差,开发的人给我打电话说 ...

  6. rsync 同步数据

    -av  常用参数 -l   同步软连接 -L   同步软连接的原文件 目录对目录同步,加"/",同步目录下所有的文件 --delete 强制目标远一致 -u    避免把目标上的 ...

  7. 海康威视RSTP摄像头视频数据从内网读取在web用HLS播放

    环境:海康威视录像机DS-7804NB-K1/4P,Ubuntu16.04 录像机内网地址192.168.100.99,一个摄像头接在4号口(32口以下通道号从33开始),摄像头内网地址 192.16 ...

  8. 命令行net time同步时间(内网)

    首先还是推荐大家使用Internet时间来同步自己计算机的时间,这样做主要是方便,就是设置一个ntp服务器,我推荐下面的三个ntp服务器地址. time.asia.apple.com //亲测有效 a ...

  9. ecs服务器内网连接_让不同地域云服务器ECS和云数据库内网互通

    如果因某种原因,部署应用的云服务器和部署数据库的服务器(包括云数据库RDS)不在同一个地域或是不在一个帐号或是不在一个VPC.在这种情况下,应用和数据之间内网不通,而通过公网连接数据库既不安全也不稳定 ...

最新文章

  1. ThinkPHP框架介绍
  2. table布局注意点
  3. 困扰数学家90年的猜想,被计算机搜索30分钟解决了
  4. 解决三星 BIOS 模式没有 Fast Bios Mode选项 U盘动项问题
  5. 从哪些方面可以选出优质的香港服务器?
  6. TensorFlow学习笔记之四(MNIST数字识别)
  7. 《Python游戏编程快速上手》第五章--龙穴探险
  8. 课堂练习-买书价格最低
  9. Kamp;R练习题6-1统计关键词出现的次数
  10. coap python3_node-coap入门(三)——Observe
  11. No module named ‘pyqt5‘解决办法
  12. clonecd中文破解版|clonecdv光盘复制工具5.5.1.4绿色免费版下载
  13. hadoop组件中的hive安装
  14. 抖音sdk,抖音开发api接口
  15. 电子邮箱格式什么样的好?什么邮箱好用?
  16. SQL中的or与in的区别
  17. Notepad ++中的一个著名插件FingerText
  18. Docker学习笔记1-初识Docker
  19. Visual Odometry Revisited: What Should Be Learnt?(2020.2)
  20. 在JSP中,点击网页某个按钮或者超链接执行某些需要确认的命令时,弹出确认框如下效果: 如果点击确定,则执行要操作的命令。如果点击取消则不执行。 实现步骤: 1:在jsp,或者html

热门文章

  1. python流量实时统计_Python实现获取nginx服务器ip及流量统计信息功能示例
  2. suse11安装python_suse linux 安装python Eric4
  3. Java输出小明算对多少题目_2014年Java方向C组第十题
  4. php laravel 优点,Laravel 特点有哪些?
  5. java 树的数据结构_Java数据结构之树(二叉树)
  6. java fx border_JavaFx UI控件与代码间的绑定方法
  7. android 移除fragment,Android Viewpager+Fragment取消预加载及Fragment方法的学习
  8. matlab 电力系统动态仿真,基于Matlab的电力系统动态仿真分析
  9. java实现权限_Java实现权限管理的两种方式
  10. 编写了html怎么测试,如何将测试结果写入HTMLTestRunner生成的报告标题中