使用rsync实现客户端与服务器端的文件同步与传送,重点是原理和参数解释
1、什么是rsync?
-rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
-第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
-安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
-支持匿名传输,以方便进行网站镜象。
2、本人操作的时候使用的具体的环境是:客户端:Mac+服务器端:Ubuntu
iOS系统和Ubuntu是默认已经安装好rsync环境的,客户端可以直接打开 终端,使用rsync的相关命令就能进行操作;Ubuntu在使用rsync的时候需要先通过一系列的设置来打开rsync的服务。
其他环境下关于rsync的安装和配置可参考以下链接:
https://rsync.samba.org
https://rsync.samba.org/ftp/rsync/rsyncd.conf.html
https://rsync.samba.org/ftp/rsync/
3、关于服务器端Ubuntu下的rsync的相关配置
主要是创建配置文件 rsyncd.conf列表内容
1、 修改/etc/default/rsync,让rsync服务在开机的时候启动:
$ sudo vim /etc/default/rsync
将RSYNC_ENABLE=false改为RSYNC_ENABLE=true
2、创建并修改rsyncd.conf,缺省安装中是没有这个文件的
先创建并编辑配置文件:
$ sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc
$ sudo vim /etc/rsyncd.conf
3、去掉
log file=/var/log/rsyncd
pid file=/var/run/rsyncd.pid
syslog facility=daemon
前面的注释符号#
4、修改rsync需要同步的路径:
path = /var/www/pub
(修改成客户端需要同步到的服务器端的的路径即可)
5、修改rsync使其可读可写:
read only = false
6、修改rsync用户:
auth users = rsync_user
secrets file = /etc/rsyncd.secrets
7、创建rsync用户密码文件:
sudo touch /etc/rsyncd.secrets
使其内容如下(例子):
rsync_user:rsync_password
8、修改用户密码文件权限:
$ sudo chmod 0600 /etc/rsyncd.secrets
9、启动rsync
$ sudo /etc/init.d/rsync start
4、将客户端相关文件夹中的内容同步到服务器端设置路径下的相关命令的使用
$ rsync -avz local_filename server_username@server_ip:server_filename
5、rsync的相关命参数
-v,--verbose //详细模式输出;
-a,--archive //归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgoD;
-r, --recursive //对子目录以递归模式处理;
-l, --links//保留软链结;
-p, --perms //保持文件权限;
-t, --times//保持文件时间信息;
-g, --group //保持文件属组信息;
-o, --owner //保持文件属主信息;
-D, --devices //保持设备文件信息;
-H, --hard-links //保留硬链结;
-S, --sparse //对稀疏文件进行特殊处理以节省DST的空间;
--delete //删除那些DST中SRC没有的文件;
-z, --compress //对备份的文件在传输时进行压缩处理;
6、rsync六种不同的工作模式:
1.拷贝本地文件,将/home/coremail目录下的文件拷贝到/cmbak目录下
$ rsync -avSH /home/coremail/ /cmbak/
2.拷贝本地机器的内容到远程机器
$ rsync -av /home/coremail/ 192.168.11.12:/home/coremail/
3.拷贝远程机器的内容到本地机器
$ rsync -av 192.168.11.11:/home/coremail/ /home/coremail/
4.拷贝远程rsync服务器(daemon形式运行rsync)的文件到本地机
$ rsync -av root@172.16.78.192::www /databack
5.拷贝本地机器文件到远程rsync服务器(daemon形式运行rsync)中。当DST路径信息包含”::”分隔符时启动该模式
$ rsync -av /databack root@172.16.78.192::www
6.显示远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可
$ rsync -v rsync://192.168.11.11/data
7、rsync配置文件说明:
cat/etc/rsyncd.conf //内容如下
port = 873 //端口号
uid = nobody //指定当模块传输文件的守护进程UID
gid = nobody //指定当模块传输文件的守护进程GID
use chroot = no //使用chroot到文件系统中的目录中
max connections = 10 //最大并发连接数
strict modes = yes //指定是否检查口令文件的权限
pid file = /usr/local/rsyncd/rsyncd.pid //指定PID文件
lock file = /usr/local/rsyncd/rsyncd.lock //指定支持max connection的锁文件,默认为/var/run/rsyncd.lock
motd file = /usr/local/rsyncd/rsyncd.motd //定义服务器信息的,自己写 rsyncd.motd 文件内容
log file = /usr/local/rsyncd/rsync.log //rsync 服务器的日志
log format = %t %a %m %f %bsyslog facility = local3timeout = 300
[conf] //自定义模块
path = /usr/local/nginx/conf //用来指定要备份的目录
comment = Nginx confignore errors//可以忽略一些IO错误
read only = no //设置no,客户端可以上传文件,yes是只读
write only = no //no为客户端可以下载,yes 不能下载
hosts allow = 192.168.2.0/24 //可以连接的IP
hosts deny = * //禁止连接的IP
list = false //客户请求时,使用模块列表
uid = root
gid = root
auth users = backup //连接用户名,和linux系统用户名无关系
secrets file = /etc/rsyncd.pass //验证密码文件
RSync实现文件备份同步详解 http://www.linuxidc.com/Linux/2014-09/106967.htm
利用inotifywait监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm
利用inotify+rsync实现Linux文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm
inotify-tools+rsync实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm
rsync同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm
CentOS 6.5下Rsync远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm
Linux文件夹对比并提取的差分文件技巧-rsync的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm
Rsync 的详细介绍:请点这里
Rsync 的下载地址:请点这里
使用rsync实现客户端与服务器端的文件同步与传送,重点是原理和参数解释的更多相关文章
- rsync+sersync+inotify实现服务器间文件同步之一
rsync+sersync+inotify实现服务器间文件同步之一:rsync安装配置 2013年12月14日 ⁄ Linux管理, 服务器集群技术 ⁄ 共 4925字 ⁄ rsync+sersync ...
- rsync从linux到linux的文件同步备份
rsync从linux到linux的文件同步备份 一.环境 需要备份文件的服务器(服务器端):192.168.1.201 (RHEL 5) 接收备份文件的服务器(客户端):192.168.1.202 ...
- 在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步
在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步 下载安装 vscode-ftp-sync 插件. 安装方法1. Ctrl+Shift+P 输入 ext install [插件 ...
- Rsync:一个很实用的文件同步命令
sync是Linux系统下的文件同步和数据传输工具,可用于同步文件.代码发布 1.安装. yum install -y xinetd yum insatll -y rsync 2.配置 打开rsync ...
- Rsync 3.1.0 发布,文件同步工具
文件同步工具Rsync 3.1.0发布.2013-09-29 上一个版本还是2011-09-23的3.0.9 过了2年多.Rsync基本是Linux上文件同步的标准了,也可以和inotify配合做实时 ...
- 利用cwRsync客户端将Windows下文件同步到Linux
这里不描述Linux服务端安装配置rsync服务的过程,有需要可以在网络上查找相关教程. 1.安装cwRsync客户端下载地址:http://itefix.no/cwrsync/下载文件cwRsync ...
- centos7安装rsync及两台机器进行文件同步
安装及配置 yum -y install rsync #启动rsync服务 systemctl start rsyncd.service systemctl enable rsyncd.service ...
- CentOS7通过rsync+crontab实现两台服务器文件同步
centos7系统中已经默认安装rsync 1:主服务器配置 (1)修改rsyncd.conf 配置文件 [root@localhost app]# vi /etc/rsyncd.conf motd ...
- rsync+inotify 实现服务器之间目录文件实时同步(转)
软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文 ...
随机推荐
- spring RequestMapping 包含http的部分以及各部分详解
@RequestMapping有四个参数,分别为:1.value:表示请求URL2.method:表示请求方法3.params:表示请求参数4.headers:表示请求头 [例如]:@RequestM ...
- 洛谷P1220关路灯[区间DP 提前计算代价]
题目描述 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯. 为了给村 ...
- BZOJ.1014.[JSOI2008]火星人(Splay 二分 Hash)
题目链接 后缀数组显然不行啊.求LCP还可以哈希+二分,于是考虑用平衡树维护哈希值. \[某一节点的哈希值 = hs[lson]*base^{sz[rson]+1} + s[rt]*base^{sz[ ...
- Vakuum开发笔记02 核心与安全问题
3.judger核心设计 评测系统最重要部分就是评测核心了(judger).核心judger负责了编译.执行.检查三大部分,也就是评测系统的灵魂所在,因此judger设计的好坏,直接影响到整个评测系统 ...
- Codeforces Round #372 (Div. 1) A. Plus and Square Root 数学题
A. Plus and Square Root 题目连接: http://codeforces.com/contest/715/problem/A Description ZS the Coder i ...
- MikroTik RouterOS电子克隆盘原理收集
终于搞定RouteROS8位电子盘克隆,发个讯息出来分享一下. 不需要付费的免费分享,也没要刻意挡人财路:只是让信息流通一下. 也请看到的人不要用这个方式去赚钱,不然MikroTik还是会再反制的. ...
- Message Queue协议AMQP
历史: Message Queue的需求由来已久,80年代最早在金融交易中,高盛等公司采用Teknekron公司的产品,当时的Message queuing软件叫做:the information b ...
- .net core中的高效动态内存管理方案
.net core在新增的System.Buffers中引入了一大堆高效内存管理的类,如span和memory.内存池.本文今天这里介绍一个高效动态内存访问方案. ReadOnlySequenceSe ...
- [Go] 通过 17 个简短代码片段,切底弄懂 channel 基础
关于管道 Channel Channel 用来同步并发执行的函数并提供它们某种传值交流的机制. Channel 的一些特性:通过 channel 传递的元素类型.容器(或缓冲区)和 传递的方向由“&l ...
- [Go] 命令行参数解析包(flag 包)使用详解
Go 的 flag 包可以解析命令行的参数. 一.命令行语法 命令行语法主要有以下几种形式: cmd -flag // 只支持bool类型 cmd -flag=xxx cmd -flag ...