rsync同步数据

-环境:Linux (ubuntu16.04) + windows10

Linux:

  1. 安装

    sudo apt-get install rsync

    rsync --version 查看是否已安装, 并查看版本

  2. 配置

    主要三个配置文件. 默认不存在(/etc/..)

    ① rsyncd.conf

    ② rsyncd.secrets

    ③ rsyncd.motd (rsync服务器信息)

  • 2.1 创建配置文件
  cd /etc
mkdir rsyncd
vi rsyncd.conf
rsyncd.conf内容如下:
    #告诉进程写到 /var/run/rsyncd.pid 文件中
pid file = /var/run/rsyncd.pid
lock file =/var/run/rsyncd.lock #日志文件
log file =/var/log/rsyncd.log
log format = %t %a %m %f %b
syslog facility = local3 #服务器响应消息文件
motd file = /etc/rsyncd/rsyncd.motd #指定运行端口,默认是873
port = 8877 #指定服务器IP地址 可不写默认本地
address = 192.168.56.102 #服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody
uid = root
gid = root #如果"use chroot"指定为yes,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为yes
use chroot = no #客户端最多连接数
max connections = 5
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 #要同步的模块(可写多个,并设置不同用户)
[test_data]
#指定文件目录所在路径
path = /home/test #list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes 。如果你不想列出来,就no ;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了
list=no #指定在 rsync 服务器上运行 delete 操作时是否忽略 I/O 错误。一般来说 rsync 在出现 I/O 错误时将将跳过 –delete 操作,以防止因为暂时的资源不足或其它 I/O 错误导致的严重问题。
ignore errors #如果为yes,表示只读本地文件就无法同步到服务器
read only = no #允许连接的ip,在演示中使用的云服务器就直接写*,表示无限制 如果要规定ip或者ip段(10.1.4.0/255.255.255.0)需要进行其他配置
hosts allow=10.1.4.0/255.255.255.0
#hosts deny=* #auth users 是必须在服务器上存在的真实的系统用户,如果你想用多个用户,那就以,号隔开
auth users = root #密码存在rsyncd.passwd文件里
secrets file = /etc/rsyncd/rsyncd.secrets
  • 2.2 配置rsyncd.secrets文件

    文件内容 username:password

    文件必须设置为只有所有者可读写权限 600

    chmod 600 ./rsyncd.secrets

    如果所属用户不是root 用chown修改

    chown -R root ./rsyncd.secrets

  • 2.3 rsyncd.motd

    内容如下: 连接成功信息提示

  ++++++++++++++++++++++++++++++++++++++
  welcome to rsync. 
++++++++++++++++++++++++++++++++++++++
  1. 启动rsync服务器
  • 3.1 开启宽口 并设置防火墙通道tcp允许

    iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8873 -j ACCEPT

  • 3.2 启动服务器

    rsync --daemon --config=/etc/rsyncd/rsyncd.conf

  • 3.3 检查是否启动

    ps -aux | grep rsync

    检查是否启动端口监听:

    netstat -anp | grep rsync


windows

windows客户端下载 提取码:fg6h

注意: 密码文件目录, 本地目录要用POSIX风格的写法:

/cygdrive/f/cwRsync/rsyncd.pwd f表示F:盘

  1. 安装cwRsync windows客户端

配置环境变量 cwRsync/bin --> path

  1. 在cwRsync目录下建 密码文件 rsyncd.pwd (保证文件只有所有者可读写600权限)

内容: 只写密码即可

测试拉取服务器数据到本地(前提 步骤1需要配置 在终端任何目录方可运行):

rsync --port=8873 -avzP root@192.168.56.102::test_data /cygdrive/d/data --password-file=/cygdrive/f/cwRsync/rsyncd.pwd

排错

① ERROR: password file must not be other-accessible

服务器跟客户端两边的密码文件都必须是 600 权限

windows10: 修改文件权限为可读写, 所属用户只有当前登录用户

查看当前用户(推荐使用cmder终端):

λ whoami
desktop-2018whj\lenovo λ echo %username%
Lenovo
# 使用cwRsync提供的工具
chomd.exe -c 600 /cygdrive/f/cwRsync_15110/rsync.pwd
chown.exe Lenovo /cygdrive/cwRsync_15110/rsync.pwd

其他事项

如果文件权限不可修改(windows10), 使用一下方法解决

通过文件右键查看属性--> 安全 --> 查看用户权限

  • 目录右键>属性>安全

    • 点击>高级> 禁用继承==>将以继承的权限 转换为此对象的显式权限
  • 目录右键>属性>安全
    • 点击==>编辑
    • 删除所有组或用户名下面的信息
    • 点击>添加>高级>立即查找>选中需要使用的用户(一般为当前用户)==>双击或者选中后确定
    • 将选中的用户勾选 读写 权限
    • 一路确定

参考资料:

windows chomod 600

Rsync数据同步工具

mac Rsync参考

Linux运维: Rsync同步数据(ubuntu16.04+windows10)的更多相关文章

  1. Linux运维 -- 文件备份同步系列

    [1.]文件备份与恢复 #()整盘数据备份-->另一个盘/一个image文件 dd if=/dev/sdb of=/dev/sde #备份到指定的image文件中 dd if=/dev/sdb ...

  2. Linux运维-Rsync+Inotify

      Rsync+Inotify Rsync:linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. 特性: 可 ...

  3. 日常运维--rsync同步工具

    rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而 ...

  4. Linux运维入门到高级全套常用要点

    Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...

  5. linux运维中的命令梳理(一)

    在linux日常运维中,我们平时会用到很多常规的操作命令. 下面对常用命令进行梳理: 命令行日常系快捷键(不分大小写)CTRL + A 移动光标到行首CTRL + E 移动光标到行末CTRL + U ...

  6. Linux运维笔记-日常操作命令总结(1)

    在linux日常运维中,我们平时会用到很多常规的操作命令. 查看服务器的外网ip [root@redis-new01 ~]# curl ifconfig.me [root@redis-new01 ~] ...

  7. 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路

    做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...

  8. 详解Linux运维工程师

    运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化.如:今年大数据,人工智能比较火……(相对表示就是 Python 比较火) 之前写过运维 ...

  9. Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)

    Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编   ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...

随机推荐

  1. java把流抛给浏览器下载时,当下载的文件文件名为中文时,出现中文名被替换为“----------”的情况

    比如说,下载的文件名为: 软件分析报告.docx,当使用流抛给浏览器下载时,浏览器下载的文件为:-----------.docx 出现这种情况的原因:大体的原因就是header中只支持ASCII,所以 ...

  2. 查看http的并发请求数及其TCP连接状态

    统计80端口的连接数据 netstat -nat | grep -i "80" | wc -l 统计httpd协议连接数 ps -ef | grep httpd | wc -l 统 ...

  3. 🔸RU大神手册上要再“做”的题🔸

  4. change qt version

    https://blog.csdn.net/xiaoheibaqi/article/details/50777203 右键工程->设置qt project setting -->修改ver ...

  5. Java中二叉排序树

    package com.ietree.basic.datastructure.tree; import java.util.ArrayDeque; import java.util.ArrayList ...

  6. mysql查询今天、昨天、近7天、近30天、本月、上一月的SQL语句

    mysql查询今天.昨天.近7天.近30天.本月.上一月的SQL语句 这篇文章主要介绍了mysql查询今天.昨天.近7天.近30天.本月.上一月的SQL语句,一般在一些统计报表中比较常用这个时间段,需 ...

  7. webapi Model Validation 模型验证

    通常情况下,对于那些经常为别人提供数据接口的开发人员来说,对于调用方传递过来的参数都会有验证处理.例如: if (string.IsNullOrEmpty(entity.Name)) { //当姓名为 ...

  8. POJ2031 Building a Space Station 2017-04-13 11:38 48人阅读 评论(0) 收藏

    Building a Space Station Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 8572   Accepte ...

  9. ZSTU4274 约素 2017-03-22 17:11 66人阅读 评论(0) 收藏

    4274: 约素 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1807  Solved: 467 Description 判断一个正整数n的约数个数 ...

  10. Ubuntu下的apache2的配置过程

    参考apache2的中文文档:http://httpd.apache.org/docs/2.4/ 安装apache2: apt-get install apache2 安装apache2doc文档:a ...