为什么要使用 rsync 从 Windows 到 linux 进行同步?

我们经常会面临这种的情况,项目使用 Windows 开发,最终部署在 Linux 上,但有时想要进行测试、维护、迭代版本时操作时,服务器和本地的开发环境代码的同步就成了问题。当然我们可以选用 Git 进行代码的同步。但有时代码的频繁修改,并且修改后的验证需要依赖外部的 Linux 服务器,这时 git 的提交便成了令人抓狂的操作。当然有人说可以使用 Jenkins 等这样的自动化工具进行部署,但由于资源或学习成本等其他外部因素,使用起来代价稍高。为了解决这个问题,今天推荐一个叫 rsync 的工具,它不但支持 Windows 与 Linux 之间的数据同步,而且配置简单,同时增量同步的功能更是解决了频繁修改代码的问题。

如何配置 rsync?

rsync 配置很容易,这里以 Windows 作为客户端,Linux 作为服务端进行演示。

Linux 配置

安装 rsync

# 检查是否安装了 rsync
rpm -qa|grep rsync # 如果没有安装的话,进行安装
yum install rsync # 将 rsync 设置成开启自启,并启动
systemctl enable rsyncd
systemctl start rsyncd

编写配置文件

rsync 涉及到的配置主要有三个:

  • /etc/rsyncd.conf -> 对 rsync 服务进行配置
  • /tmp/rsync -> 待同步的目标目录,路径可以自定义
  • /etc/rsyncd.passwd ->里面包含用于进行密码验证的账号信息

/etc/rsyncd.conf 的配置

# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# 进行通信的端口,如果 firewall 打开的话,需要将对应的端口添加进去
port=8730 # 日志文件
log file=/var/log/rsync.log # rsync 的进程 id
pid file=/var/run/rsync.pid # 要同步的模块,这里一般以项目名命名
[cmi] # 同步的目标文件夹
path=/tmp/rsync # rsync daemon 在传输前是否切换到指定的 path 目录下,并将其监禁在内,用于增加传输的安全性
use chroot=no # 指定最大的连接数
max connections=4 # yes 表示只读本地文件无法同步到服务器
read only=no # 客户端请求显示模块列表时,该模块是否显示出来
list=true # 服务运行时的用户
uid=root # 服务运行时的用户组
gid=root # 进行验证时的用户名,必须是系统存在的用户
auth users = root # 连接用户时的密码
secrets file=/etc/rsyncd.passwd # 允许的 ip
hosts allow=*

创建目标的文件夹

mkdir /tmp/rsync

创建密码

# 创建文件夹
vim /etc/rsyncd.passwd # 写入密码
echo "root:123456" > /etc/rsyncd.passwd #更改文件权限
chmod 600 /etc/rsyncd.passwd

打开rsync

systemctl start rsyncd

windows 配置

下载 cwrsync

https://www.itefix.net/cwrsync-free-edition

将下载的文件存放到固定位置

# 下载的文件名类似于这样
cwrsync_5.7.2_x86_free.zip
# 解压并放入目录,并添加到环境变量中,方便日后的使用
我这里配置的目录是“C:\app\rsync\cwrsync_5.7.2_x86_free\bin”

执行命令

# 如果配置环境变量,随意打开一个 cmd 就可以了,否则的话进入安装的目录中(bin 下面)

rsync.exe -avPz --port 8730 --password-file=/cygdrive/C/app/rsync/cwrsync_5.7.2_x86_free/bin/cmi_password.txt --exclude-from=/cygdrive/C/app/rsync/cwrsync_5.7.2_x86_free/bin/exclude.txt /cygdrive/C/test  root@your_ip::cmi/

# 常见的的参数

-a: 归档模式,使用递归传输并保持文件的属性
-v: 显示传输过程中的详细信息
-P: 显示文件传输的进度信息
-z: 传输中进行压缩,提高传输速度 --password-file: 登录时用到的密码文件,该文件直接把密码包含就可以,用户名需要显式指定
--exclude-from: 指定不需要进行传输的文件和文件夹
--delete: 在 exclude/include 规则生效后执行,假如服务器中文件比传入的文件多,则删除,少的话,则添加。 # 在指定文件夹目录时,进入在真实目录前添加 /cygdrive/ 后面跟正常目录就可以了
比如密码文件的路径: /cygdrive/C/app/rsync/cwrsync_5.7.2_x86_free/bin/cmi_password.txt
排除文件的路径:/cygdrive/C/app/rsync/cwrsync_5.7.2_x86_free/bin/exclude.txt
本地传送的路径: /cygdrive/C/test -> 表说 C 盘的 test # 最后两个参数,表示想要传送的文件夹,以及服务器的 iP 以及认证的用户和模块、
root@your_ip::cmi/ -> 用户名为 root,cmi 表示传入的模块,均在服务端进行配置

关于密码文件 cmi_password.txt 的内容,写入文件就好

123456

关于排除文件 exclude.txt 的实例

.idea
l3vpn_not_used
load-dir
_namespaces

总结

使用 rsync 从 windows 同步数据到 linux 很简单,在 linux 作为服务器,windows 作为客户端的情况下:

linux 分别需要进行三个文件的配置,并且不要忘了给密码文件添加权限。

windows 仅需要在安装后,直接使用就可以了,无非就是一些参数的添加。

最后,大家可以使用 windows 的定时任务,进行数据的定时同步。希望提高大家的工作效率。

使用 Rsync 从 Windows 同步数据到 Linux的更多相关文章

  1. linux和windows同步数据 cwrsync client to rsync server

    linux和windows同步数据,rsync server  cwrsync client linux server一般系统都自带rsync,如果没有就挂载系统盘自己安装一下,安装挺简单的不用我再多 ...

  2. 【转】CentOS5.6下配置rsync内网同步数据到外网

    [转]CentOS5.6下配置rsync内网同步数据到外网 本文转自:http://www.linuxidc.com/Linux/2012-06/64070.htm 一.需求 卫士那边有一个需求,就是 ...

  3. 2-3-2 rsync+inotify备份同步数据

    RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Dav ...

  4. Rsync(远程同步): linux中Rsync命令的实际示例

    rsync的 ( 远程同步 )为在Linux / Unix系统局部 拷贝和同步文件和目录远程以及一个最常用的命令. 随着rsync命令的帮助,您可以复制并在目录中远程和本地同步数据,在磁盘和网络,进行 ...

  5. Rsync+inotify自动同步数据

    一.简介 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足. 首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传 ...

  6. rsync配置和同步数据

    rsync的搭建配置1.环境和配置文件 rsyncd.conf(主配置文件) rsyncd.secrets(密码文件) pc1:192.168.0.1,rsync的服务器,配置rsyncd.conf文 ...

  7. 使用rsync在windows(服务端)与linux(客户端)之间同步

    说明: 1.cwRsyncServer服务端 系统:Windows7 IP地址:192.168.0.110 2.Rsync客户端 系统:CentOS 6.7 IP地址:192.168.0.141 实现 ...

  8. kettle工具同步数据乱码-Linux下乱码问题二

    将写好的kettle工程部署到Linux下后,同步的数据都成了乱码,幸运的是数据库有备份. 下面就说一下,kettle工程如何同步两端编码格式都是utf8的数据库. 我们只需要更改kettle数据库连 ...

  9. 利用Rsync在windows和linux之间同步数据

    使用Rsync从windows同步文件到linux 1.windows服务端的安装与配置: 免费软件下载地址:http://linux.linuxidc.com/,用户名密码为:www.linuxid ...

随机推荐

  1. 1.7.3.1版本ride乱码的解决方法

    现象: 解决方式: 修改文件\Python36\Lib\site-packages\robotide\contrib\testrunner\testrunner.py 将latin1修改为mbcs 然 ...

  2. js初学者循环经典题目

    1.根据一个数字日期,判断这个日期是这一年的第几天例如: 2016和02和11,计算后结果为42 var y = 2016;//+prompt("请输入年份") ;         ...

  3. Mysql高手系列 - 第27篇:mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发设计及跨库转账问题

    Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 欢迎大家加我微信itsoku一起交流java.算法.数据库相关技术. 这是Mysql系列第27篇. 本篇文章我们先来 ...

  4. 远程桌面连接(mstsc)

    目录 1. 序言 2. 准备工作 3. 内网远程连接(以mstsc的方式) 4. 问题---凭据不工作 5. 外网远程连接(mstsc) 6. 结语 更新时间:2019.09.10 1. 序言 有时候 ...

  5. mySQL的安装过程---二进制和源码安装

    安装 mysql 源码包安装 优化基础源 [root@db03 ~]# vim /etc/yum.repos.d/CentOS-Base.repo 安装依赖包 [root@db03 ~]# yum i ...

  6. Veins(车载通信仿真框架)入门教程(二)——调用第三方库

    Veins(车载通信仿真框架)入门教程(二)——调用第三方库 在借助Veins进行自己的研究时我们经常需要实现一些比较复杂的功能,有时就需要借助第三方库的帮助. 博主的研究需要使用神经网络,但是自己编 ...

  7. Mysql数据库(十一)事务与锁机制

    一.事务机制 1.事务的概念 事务是指一组互相依赖的操作单元的集合,用来保证对数据库的正确修改,保持数据的完整性,如果一个事务的某个单元操作失败,将取消本次事务的全部操作. 比如将A账户的资金转入B账 ...

  8. 数据结构(四十二)散列表查找(Hash Table)

    一.散列表查找的基础知识 1.散列表查找的定义 散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key).查找时,根据这个确定的对应关系找到 ...

  9. Python能做什么,自学Python效果怎么样?

    短时间掌握一门技能是现代社会的需求.生活节奏越来越快,现在不是大鱼吃小鱼,而是快鱼吃慢鱼的时代,人的时间比机器的时间更值钱.Python作为一种轻量级编程语言,语言简洁开发快,没那么多技巧,受到众多追 ...

  10. 给自己网站配置 https,http2 ,gzip压缩

    https 需要购买域名ssl证书 注意事项: 1.要开启HTTP/2协议支持,需要在nginx 1.10以上版本并且需要openssl库的版本在1.0.2及以上编译. 2.http2.0只支持开启了 ...