一:环境

  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. spring-cloud-square源码速读(spring-cloud-square-okhttp篇)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. Centos 系统常用编译环境

    centos编译环境配置 yum install -y autoconf make automake gcc gcc-c++

  3. Java多线程之Atomic:原子变量与原子类

    Atomic简介 ​ Atomic包是java.util.concurrent下的另一个专门为线程安全设计的Java包,包含多个原子操作类这个包里面提供了一组原子变量类. ​ 其基本的特性就是在多线程 ...

  4. LeetCode 199. 二叉树的右视图 C++ 用时超100%

    /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode ...

  5. git 回滚版本

    方法一.(回滚到原来的版本) 1.在gitlab上找到要恢复的版本号,如: bbdca96 2.在客户端执行如下命令(执行前,先将本地代码切换到对应分支): git reset --hard bbdc ...

  6. 微信小程序(二)

    创建项目: hello.wxml hello world 每个学习的开始 <view>hello world!</view> hello.js 像 app.js 一样 Page ...

  7. shuffle.java

    /************************************************************************* * Compilation: javac Shuf ...

  8. [hdu6995]Travel on Tree

    问题即查询将其按照dfs序排序后,相邻两点(包括首尾)的距离和 考虑使用莫队+set维护,时间复杂度为$o(n\sqrt{n}\log n)$,无法通过 进一步的,注意到删除是可以用链表实现的,因此考 ...

  9. [luogu4318]完全平方数

    首先,我们肯定要用到二分答案. 这道题目就是统计第k个μ不是0的数,线性筛显然会炸飞的,但当二分出一个数而统计有多少个小于等于他的合法数时,就可以容斥一下,即:1^2的倍数都不合法,2^2的倍数都不合 ...

  10. [atAGC045D]Lamps and Buttons

    由于$p_{i}$是随机的,不断选择最小的.未被操作过的$i$并处理其所在的环一定是最优的,而这样与已知$p_{i}$的区别是,当选择了一个$i=p_{i}$,那么必然失败(而已知$p_{i}$时不会 ...