一:环境

  1、服务端:Red Hat Enterprise Linux Server release 6.4 (Santiago)
  2、客户端:windows7旗舰版64位
  3、同步对象:测试数据
  4、Rsync介绍:rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。是一款非常理想的数据同步工具
  Rsync的好处:支持增量备份,对于很多大的数据文件来说用rsync是一个很理想的工具,既能节省磁盘空间还能提高备份相率

  5、注意事项:此种同步方式仅限rsync的daemon模式

二:无差异同步示意图

三:服务端配置文件

  1、 rsync配置文件:/etc/rsyncd.conf

uid = rsync # rsync用户,要是0的话代表所有用户
gid = rsync # rsync用户组
use chroot = no # 安全考虑,出现BUG可以把危险的数据定位到一个chroot目录下去,避免恶意攻击
max connections = 200 # 最大连接数
timeout = 300 # 超时时常
pid file = /var/run/rsyncd.pid # 服务端进程号
lock file = /var/run/rsync.lock # 服务端锁文件
log file = /var/log/rsyncd.log # 服务端后台日志
[test] # 模块名
path = /tmp/filesystem/ # 需要同步的目录内容
ignore errors # 忽略错误
read only = false # 取消只读
list = false # 客户端列出服务端的内容
hosts allow = 192.168.3.0/24  # 同步的主机地址
hosts deny = 0.0.0.0/32 # 需要阻止哪些地址登陆
auth users = test_rsync # rsync用户名
secrets file = /etc/rsync.password 

  2、rsync密码文件:/etc/rsync.password

[root@test ~]# cat /etc/rsync.password
test_rsync:test1234  #前面是rsync的虚拟用户,后者是rsync的密码
[root@test ~]# ll /etc/rsync.password
-rw------- 1 root root 17 Nov 26 14:46 /etc/rsync.password  # 修改密码文件权限为600

  3、修改服务端两个配置文件权限(/etc/rsyncd.conf、rsync.password)

[root@test ~]# chmod 600 /etc/rsyncd.conf
[root@test ~]# chmod 600 /etc/rsync.password

  4、创建rsync用户

[root@test ~]# useradd rsync -s /sbin/nologin

  5、启动服务器端rsync进程

[root@test ~]# rsync --daemon

  6、检查进程状态以及进程端口(默认873)如下:说明服务端一切正常

[root@test ~]# netstat -lnutp | grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 20509/rsync
tcp 0 0 :::873 :::* LISTEN 20509/rsync
[root@test ~]# ps -ef | grep rsync
root 20509 1 0 16:20 ? 00:00:00 rsync --daemon
root 22508 10881 0 17:12 pts/1 00:00:00 grep rsync

三:客户端准备

  链接:https://pan.baidu.com/s/1kHQSVEODxbtXpxxMnT1S2A

  提取码:9q4m

四:安装rsync客户端

五:客户端配置

  1、rsync家目录内容

  2、配置客户端rsync

    在bin目录下加入密码文件:rsync.password,注意此密码要和服务端的/etc/rsync.password里面的密码一致,服务端密码为:test1234,所以客户端密码文件也写成这个

  3、修改客户端密码文件的属主:(不修改属主默认会提示错误)

  4、同步服务端的数据到客户端指定位置

    在客户端rsync目录的bin目录下执行:
    rsync.exe -avz --password-file=rsync.password test_rsync@192.168.3.14::test /cygdrive/f/testdir >> syslog.log

  5、参数解读

    -avz参数说明:
    -a:等于下图所有内容:

    -v:可视化
    -z:传输时进行压缩提高传输速率
    --password-file:指定密码文件
    test_rsync:服务端/etc/rsyncd.conf里面的rsync的虚拟用户
    ::test:这个是服务端/etc/rsyncd.conf里面的模块名,客户端会根据服务端的模块名去找服务端需要共同步数据的目录
    /cygdrive/f/testdir:告诉rsync我的数据是同步到客户端f盘的testdir目录下

  6、linux和linux系统之间同步客户端配置更简单★★★★

    只需要在客户端上加入如下内容即可:

[root@rsync_client ~]# cat /etc/rsync.password
test1234

六:无差异备份实验

  1、服务端数据

[root@rsync_server zwy]# ls
1 10 2 3 4 5 6 7 8 9

  2、客户端数据

[root@rsync_client data]# pwd
/root/data
[root@rsync_client data]# ls # 客户端无数据

  3、第一次同步

[root@rsync_client data]# rsync -avz --password-file=/etc/rsync.password test_rsync@192.168.3.14::test ~/data/
receiving incremental file list
./
1
10
2
3
4
5
6
7
8
9
sent 248 bytes received 539 bytes 1574.00 bytes/sec
total size is 0 speedup is 0.00

  4、检查服务端数据是否同步正常

[root@rsync_client data]# ls
1 10 2 3 4 5 6 7 8 9

  5、无差异同步,删除服务器端的1-5的数据,然后客户端拉取数据看看效果

[root@rsync_server zwy]# ls
1 10 2 3 4 5 6 7 8 9
[root@rsync_server zwy]# rm -f {1..5}
[root@rsync_server zwy]# ls
10 6 7 8 9

  6、客户端用无差异备份的方式拉数据看看效果

[root@rsync_client data]# rsync -avz --delete --password-file=/etc/rsync.password test_rsync@192.168.3.14::test ~/data/
receiving incremental file list
deleting 5
deleting 4
deleting 3
deleting 2
deleting 1
./
10
6
7
8
9
sent 153 bytes received 333 bytes 972.00 bytes/sec
total size is 0 speedup is 0.00
[root@rsync_client data]# ls # 再看客户端数据发现1-5的数据已经被删除了
10 6 7 8 9

  7、无差异备份要了解拉数据和推数据的流程,否则风险很大!!!!!

七:附rsync自启动脚本

 1 [root@test ~]# cat /etc/init.d/tfrsync
2 #!/bin/sh
3 #
4 #
5 # rsync start/stop/status/restart
6 #
7 # chkconfig: 35 57 10
8 # description: rsync backup oa data
9
10 . /etc/init.d/functions
11
12 PID="/var/run/rsyncd.pid"
13 LOCK="/var/run/rsync.lock"
14 COUNT=`ps -ef | grep rsync | grep -vE "grep|vim|cat|more|sh" | wc -l`
15 STATUS_TRUE="action "$0" /bin/true"
16 STATUS_FALSE="action "$0" /bin/false"
17
18 case "$1" in
19
20 start)
21
22 if [ $COUNT -eq 1 ]
23 then
24 echo -ne "rsync is started " && $STATUS_FALSE
25 exit 1
26 else
27 /usr/bin/rsync --daemon && $STATUS_TRUE || $STATUS_FALSE
28
29 fi
30
31 ;;
32
33 stop)
34
35 cat $PID | xargs kill -9 2>/dev/null && $STATUS_TRUE && rm -f $PID $LOCK || $STATUS_FALSE
36
37 ;;
38
39 status)
40
41 [ $COUNT -eq 1 ] && echo "rsync is running." || echo "rsync is stoped."
42
43 ;;
44
45 restart)
46
47 if [ -f $PID ]
48 then
49 cat $PID | xargs kill -9 && $STATUS_TRUE && rm -rf $PID $LOCK && \
50 /usr/bin/rsync --daemon && $STATUS_TRUE || $STATUS_FALSE
51 else
52 /usr/bin/rsync --daemon && $STATUS_TRUE || $STATUS_FALSE
53 fi
54
55 ;;
56
57 *)
58 echo "Usage:$0 {start|stop|status|restart}"
59 ;;
60 esac

脚本写的不好,还请大家多多包涵,谢谢!

用Rsync实现windows下同步linux服务器的数据的更多相关文章

  1. 在windows下远程访问linux服务器

    在网络性能.安全性.可管理性上,Linux有着其他系统无法比拟的强大优势,而服务器对这些方面要求特别高,因此Linux常常被用来做服务器使用.而当我们需要维护linux服务器的时候,就需要远程访问li ...

  2. [Linux实用工具]Windows下同步Linux文件(Linux安装Samba和配置)

    场景需求: 安装了Ubuntu在虚拟机上,但是代码编辑或者其它更多的操作的时候,还是习惯在windows下进行.如果windows下编辑完再上传到服务器,再编译执行,就太繁琐了.一次两次还好说,这编译 ...

  3. windows下实现linux的远程访问以及linux上文件的上传和下载

    在网络性能.安全性.可管理性上,Linux有着其他系统无法比拟的强大优势,而服务器对这些方面要求特别高,因此Linux常常被用来做服务器使用.而当我们需要维护linux服务器的时候,就需要远程访问li ...

  4. Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)

    本文转自博客:https://blog.csdn.net/black_3717/article/details/79769406 问题背景: 之前给客户部署我们一款EasyDSS云平台(配合EasyN ...

  5. Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序

    自:http://blog.csdn.net/neofung/article/details/6574002 Ubuntu上安装和使用SSH  网上有很多介绍在Ubuntu下开启SSH服务的文章,但大 ...

  6. windows下搭建nginx-rtmp服务器

    windows下搭建nginx-rtmp服务器 windows下搭建nginx-rtmp服务器 准备工作 安装MinGW 安装Mercurial 安装strawberryperl 安装nasm 下载n ...

  7. gcc和MinGW的异同(在cygwin/gcc做的东西可以无缝的用在linux下,没有任何问题,是在windows下开发linux程序的一个很好的选择)

    cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器. cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从 ...

  8. 在Windows下配置Linux远程开发环境

    在Windows下配置Linux远程开发环境 欢迎光临我的个人博客 https://source.chens.life/Configure-Linux-remote-development-envir ...

  9. 在windows下使用linux命令,GnuWin32的使用.

    http://sourceforge.net/projects/getgnuwin32 使用过linxu的伙计估计都会喜欢上linux各种各样强大的命令如:grep, sed,awk,diff和pat ...

随机推荐

  1. 认真讲说static关键字

    static 关键字主要有以下四种使用场景 修饰成员变量和成员方法 静态代码块 修饰类(只能修饰内部类) 静态导包(用来导入类中的静态资源,1.5之后的新特性) 修饰成员变量和成员方法(常用) 被 s ...

  2. 空格替换 牛客网 程序员面试金典 C++ Python

    空格替换 牛客网 程序员面试金典 C++ Python 题目描述 请编写一个方法,将字符串中的空格全部替换为"%20".假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实 ...

  3. Appium 介绍与环境搭建

    目录 Appium 介绍 APP 自动化测试介绍 什么是 Appium ? Appium 优势 Appium 架构 Appium 生态 Appium 组件 UiAutomator API Bootst ...

  4. 计算机网络漫谈之UDP和TCP

    计算机网络漫谈之传输层 咱们讨论了如果需要确定一个计算机上的不同网络程序(比如QQ和浏览器),需要端口的标识,但是IP头部和帧的头部都没有端口的标识字段,需要新的协议.和前面IP协议的实现套路一样,我 ...

  5. MySQL到底能否解决幻读问题

    先说结论,MySQL 存储引擎 InnoDB 在可重复读(RR)隔离级别下是解决了幻读问题的. 方法:是通过next-key lock在当前读事务开启时,1.给涉及到的行加写锁(行锁)防止写操作:2. ...

  6. 【python】以souhu邮箱为例学习DDT数据驱动测试

    前言 DDT(Data-Driven Tests)是针对 unittest 单元测试框架设计的扩展库.允许使用不同的测试数据来运行一个测试用例,并将其展示为多个测试用例.通俗理解为相同的测试脚本使用不 ...

  7. 深入理解Spring IOC源码分析

    Spring容器初始化 本文使用的是Spring 5.1.7版本 写在前面:我们看源码一般有3种方式. 第一种直接用class文件,IDEA会帮我们反编译成看得懂的java代码 第二种是用maven的 ...

  8. Java 处理表格,真的很爽!

    一个简单又快速的表格处理库 大家好,我是鱼皮. 处理 Excel 表格是开发中经常遇到的需求,比如表格合并.筛选表格中的某些行列.修改单元格数据等. 今天给大家分享一个 Java 处理表格的工具库,不 ...

  9. [bzoj1081]超级格雷码

    手动模拟一组样例,可以理解大致应该如何操作具体实现中,记录每一位当前应该+1还是-1,然后操作最低的位并将后面的+1和-1全部取反即可 1 #include<bits/stdc++.h> ...

  10. [loj3176]景点划分

    不妨设$a\le b\le c$,那么相当于要找到两个大小至少为$a$和$b$的连通块(连通块可以通过删除度最小的点变小) 以一个点为根建出dfs树并对以下情况分类讨论: 1.存在一个节点满足$\ma ...