rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync****主机同步

文件下载地址:

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

提取码:8888

这里简单说下环境,A是部署了机房的服务器,B是空的,需要把A的文件备份到B的服务器

在A服务器下操作

1.解压在/home下

cd /home
tar -xzf rsync-3.1.2.tar.gz

2.编译及安装

cd rsync-3.1.2
./configure
make && make install

3.rsync主要命令选项:

-r:递归模式,对子目录以递归模式处理

-l:--links 保留软链结

-v:--verbose 详细模式输出

-a:--archive 权限保存模式,表示以递归方式传输文件,并保持所有文件属性,相当于-rlptgoD

-z:--compress 压缩模式,对备份的文件在传输时进行压缩处理

-p:--perms 保持文件权限,文件原有属性。

-o:--owner 保持文件原有属主信息。

-g:--group 保持文件原有属组信息。

-D:--devices 保持设备文件信息。

-t:--times 保持文件时间信息。

-A:保持ACL属性信息

-D:保留设备文件及其其他特殊文件

--delete:删除目标位置有而原始位置没有的文件

--password-file=FILE,从FILE中得到密码

总结:

常用的****-avz

同步模式:

下行:rsync用户@主机ip:/远程目录本地目录
rsync -az root@192.168.12.130:/rsync/netzxw15
意思是把别的电脑文件下载到本地
上行:rsync本地目录用户@主机ip:/远程目录
rsync -az /netzxw15 root@192.168.12.130:/rsync
意思是把本地的文件传给别的电脑

4.创建软连接:

ln -s /home/rsync-3.1.2/rsync /usr/bin/rsync

5测试:

A:部署了3D服务的机器,192.168.10.161

B:需要把3D文件同步到B服务器,192.168.10.162

在A ,B的 /home/新建一个test的文件夹,在A里面新建5个txt文件

在A操作

我们把A的五个文件同步到B上面,因为我们是传给B,所以是上传

rsync -avz /home/test/* root@192.168.10.161:/home/test   //把本机的/home/test下的所有文件 传给192.168.10.161下的/home/test 里面

输入密码即可

同步成功

5.在A,B服务器上新建一个同步的用户,账号密码设置成一样的,并且设置好权限,免密同步

创建用来做数据同步的用户,并给予用户对目录的相应权限,一般使用 ACL 设置权限
# useradd rsync

# passwd rsync

设置好密码

# setfacl -m u:rsync:rwx /home/wxq    //这里的指的是新建的用户只有指定的目录权限,实际情况替换为机房所在文件夹

ssh-keygen -t rsa -b 2048

一路回车

ssh-copy-id rsync@192.168.10.162    //传送到B服务器上面

输入yes

输入密码,刚才设置的rsync用户的密码

咱们用ssh登录测试一下,无需输入密码就可以进去了

ssh rsync@192.168.10.162

这时候我们测试一下同步就不需要密码了,我们在161上新建了一个文件,我们使用同步到162上

我们看到此时就不需要密码就可以实现了

7.后台自动运行同步文件

Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。

安装 inotify

在A服务器.部署了机房上使用root安装

cd /home/
tar -xvf inotify-tools-3.13.tar.gz

cd inotify-tools-3.13/
./configure && make && make install

inotifywait  命令 格式
格式:inotifywait -mrq -e 监控动作 1,监控动作 2 /监控目录 &
示例:inotifywait -mrq -e create,delete /filesrc &
-m:始终保持事件监听状态
-r:递归查询目录
-q:只打印监控事件的信息
监控动作:modify(内容),create,attrib(权限),move,delete

rsync+inotify实现数据同步

使用root操作

在部署机房的服务器上操作

cd /home

脚本1:只会同步增加修改的文件,不会同步删除的文件

vi rsync.sh
#!/bin/bash
a="inotifywait -mrq -e create,delete,modify /home/wxq/"
b="rsync -avz /home/wxq/ rsync@192.168.10.162:/home/wxq/"
$a | while read directory event file  #while 判断是否接收到监控记录
do
$b
done

脚本2:无论是新增还是修改,删除都会同步

a="inotifywait -mrq -e create,attrib,move,delete,modify /home/wxq/"
b="rsync -avz --delete /home/wxq/ rsync@192.168.10.162:/home/wxq/"
$a | while read directory event file
do
$b
done

按下 :wq! 即可保存

su rsync

我们开始执行脚本

bash /home/rsync.sh &    //表示在后台执行

接下来我们看看效果

linux下rsync的同步的更多相关文章

  1. Linux下Rsync+sersync实现数据实时同步

    inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一. ...

  2. Linux下Rsync+Inotify-tools实现数据实时同步

    Linux下Rsync+Inotify-tools实现数据实时同步 注意:下面的三个案例都是rsync 每次都是全量的同步(这就坑爹了),而且 file列表是循环形式触发rsync ,等于有10个文件 ...

  3. Windows和Linux之间 rsync数据同步

    转载于   https://www.linuxidc.com/Linux/2014-01/95722p2.htm rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——rem ...

  4. linux下rsync和tar增量备份梳理

    前面总结过一篇全量备份/增量备份/差异备份说明,下面介绍下linux下rsync和tar两种增量备份的操作记录: 1)rsync备份 rsync由于本身的特性,在第一次rsync备份后,以后每次都只是 ...

  5. Linux下rsync 安装与配置

    1.什么是rsync Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“Rsync算法”来使本地和远 程两个 ...

  6. [Linux]Linux下rsync服务器和客户端配置

    一.rsync简介 Rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其他文件传输服务那样需要进行全备份,Rsync可以根据数据的变化进行差异( ...

  7. Linux下rsync命令使用总结

    一.rsync的概述 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync” ...

  8. Linux下rsync的用法

    一.rsync的概述 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync” ...

  9. Linux下进程的同步相互排斥实例——生产者消费者

    linux下的同步和相互排斥 Linux sync_mutex 看的更舒服点的版本号= = https://github.com/Svtter/MyBlog/blob/master/Linux/pth ...

随机推荐

  1. 使用.NET简单实现一个Redis的高性能克隆版(二)

    译者注 该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单.高性能兼容Redis协议的数据库的经历. 首先这个"Redis"是非常简单的实现,但是他 ...

  2. 让Python更优雅更易读(第一集)

    变量和注释 1.变量 在编写变量尽量要让其清晰只给,让人清除搞清楚代码的意图 下方两段代码作用完全一样,但第二段代码是不是更容易让人理解 value = s.strip() username = in ...

  3. Luogu3594 [POI2015]WIL-Wilcze doły (双端队列)

    单调性显然,双端队列队列维护严格单调递减手写双端队列真的可恶. #include <iostream> #include <cstdio> #include <cstri ...

  4. Canvas 线性图形(一):路径

    路径的概念 路径是从起始点到结束点之间的连线.个人认为,二维画布中分为线性图形和非线性图形,线性图形包括矩形.直线.曲线.圆形等各种几何图形:非线性图形包括图象.文本.像素.线性图形中又分为路径和非路 ...

  5. C++大数据的读写

    当一个文件1G以上的这种,使用内存文件映射会提高读写效率: 下边时段出自<windows核心编程>,读取一个大文件,然后统计里边字符出现次数的函数: __int64 CountOs(voi ...

  6. Java SE 17 新增特性

    Java SE 17 新增特性 作者:Grey 原文地址:Java SE 17 新增特性 源码 源仓库: Github:java_new_features 镜像仓库: GitCode:java_new ...

  7. JavaScript基础回顾知识点记录3

    js 中 垃圾回收 //将不在使用的对象设置为null , js就会自动进行垃圾回收机制 var obj = {}; obj = null; js 中 数组基本介绍 数组也是一个对象 与普通对象功能类 ...

  8. 【IDEA】IDEA打开欢迎页面

    概述 IDEA在默认情况下,会进入最后一个项目.如果项目比较大的话会加载的比较久,这个就比较烦人了,目前我觉得最好的办法就是在设置中直接进入欢迎页面. 解决方案 ① 进入设置 ② Appearance ...

  9. 聊聊 asp.net core 认证和授权

    使用asp.net core 开发应用系统过程中,基本上都会涉及到用户身份的认证,及授权访问控制,因此了解认证和授权流程也相当重要,下面通过分析asp.net core 框架中的认证和授权的源码来分析 ...

  10. JAVA SE 基础总结

    § 基础知识 一.程序组织与运行原理 1.1 程序组织 一个 JAVA 程序文件中主要由如下几部分构成: package 声明 public 类:public 类与类文件名相同,因为其是作为该类文件唯 ...