远程同步工具 ---- rsync

前言:

​ rsync(Remote Sync)是linux系统下的数据镜像备份工具,使用快速增量备份工具rsync可以远程同步,支持本地复制或其他ssh、rsync主机同步。 rsync使得本地和远程两个主机之间的文件达到同步,只传送两个文件不同的部分,不像ftp那样需要全备份。rsync可以根据数据的变化进行差异备份,从而减少数据流量,提高工作效率 。

一、rsync的介绍:

1、特点:

  • 可以镜像保存整个目录树和文件系统;

  • 可以很容易做到保持原来文件的权限、时间、软硬链接等等;

  • 无须特殊权限即可安装;

  • 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

  • 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

  • 支持匿名传输,以方便进行网站镜像

2、rsync同类服务

  • sync 同步:刷新文件系统缓存,强制将修改过的数据块写入磁盘,并且更新快。
  • async 异步:将数据先放到缓冲区,再周期性(一般是30s)的去同步到磁盘。
  • rsync 远程同步

3、rsync主要分为三个配置文件

  • tsyncd.conf(主配置文件)

  • rsync.secrets(密码文件)

  • rsyncd.motd(服务器信息文件)

4、rysnc常用选项

二:实验步骤

  • 实验环境

~ 两台虚拟机,一台作为rsync同步源(192.168.48.128),一台作为客户端(192.168.48.130);
两台虚拟机都要安装rsync 。rsync是系统自带的,无需安装,如果虚拟机是最小化安装的话,需要yum安装下。
1、安装httpd服务
[root@rsync ~]# yum install httpd -y
2、修改rsync配置文件
[root@rsync ~]# vim /etc/rsyncd.conf

3、编辑存放账户信息的数据
[root@rsync ~]# vi /etc/rsyncd_users.db      ‘添加账户与密码’
backuper:123    授权账户:密码       [root@rsync ~]# chmod 600 /etc/rsyncd_users.db      ‘权限设置为100,否则客户端认证会失败’
4、启动sync服务
[root@rsync ~]# rsync --daemon
[root@rsync ~]# netstat -ntap | grep rsync
tcp        0      0 192.168.48.128:873      0.0.0.0:*               LISTEN      3778/rsync
5、在/var/www/html目录中新建文件
[root@rsync ~]# cd /var/www/html/
[root@rsync html]# vim kg.html
this is kg
[root@rsync html]# vim ac.html
this is ac

这时候服务端的源配置完成了。

在客户端配置

1、使用rsync备份工具

(用法与cp差不多)

[root@client ~]# rsync /etc/fstab /opt
[root@client ~]# cd /opt
[root@client opt]# ls
fstab  rh
[root@client opt]# rsync -rl /etc/fstab /boot/grub /opt
[root@client opt]# ls
fstab  grub  rh
2、配置源

(两种方法)

方法1:用户名@主机地址::共享模块名方法2: rsync://用户名@主机地址/共享模块名
方法1:[root@client opt]# rsync -avz backuper@192.168.48.128::wwwroot /opt方法2:[root@client opt]# rsync -avz rsync://backuper@192.168.48.128/wwwroot /opt

3、rsync同步操作
[root@client opt]# rsync -avzH --delete backuper@192.168.48.128::wwwroot  /opt/myweb
[root@client opt]# cd myweb/
[root@client myweb]# ls
ac.html  kg.html       ‘看到从rsync服务器同步过来了’
4、rsync免密码交互
[root@client myweb]# vi /etc/server.pass
123
[root@client myweb]# cat /etc/server.pass
123
[root@client myweb]# chmod 600 /etc/server.pass
[root@client myweb]# rsync -azvH --delete --password-file=/etc/server.pass backuper@192.168.48.128::wwwroot /opt/myweb/     ‘无需输密码就可以进入’
[root@client myweb]# ls
ac.html  kg.html
5、添加周期性计划任务
[root@localhost wwwroot]# crontab -e    ‘每晚11点半对服务器网址目录更新一次’
30 23 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass backuper@192.168.48.128::wwwroot /opt/myweb/[root@localhost wwwroot]# systemctl restart crond
[root@localhost wwwroot]# systemctl enable crond

三:rsync+inotify实时同步

1、inotify介绍:

(Linux内核的inotify机制)

​ Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多 。

  • 从版本 2.6.13 开始提供;
  • 可以监控文件系统的变化情况,并作出通知响应;
  • 辅助软件:inotify-tools

2、rsync 实时同步:

  • 定期同步的不足:

​ 执行备份的时间固定,延迟明细,实时性差;

​ 当同步源长期不变化时,密集的定期任务是不必要的。

  • 实时同步的优点:

​ 一旦同步源出现变化,立即启用备份;

​ 只要同步源不变化,则不执行备份。

四、操作步骤

在客户端配置

1、修改内核参数
[root@client myweb]# vim /etc/sysctl.conf
‘末行添加’
fs.inotify.max_queued_events = 16384        ‘监控队伍大小’
fs.inotify.max_user_instances = 1024        ‘最多监控实例数 ’
fs.inotify.max_user_watches = 1048576       ‘每个实例最多监控文件数
’
[root@client myweb]# sysctl -p
2、安装inotify-tools辅助工具

inotifywait:用于持续监控,实时输出结果
inotifywatch:用于短期监控,任务完成后再出结果

[root@client myweb]# mkdir /abc
[root@client myweb]# mount.cifs //192.168.0.107/share /abc
[root@client abc]# tar zvxf inotify-tools-3.14.tar.gz -C /opt
[root@localhost opt]# cd inotify-tools-3.14/
[root@localhost inotify-tools-3.14]# ./configure
[root@localhost inotify-tools-3.14]# make && make install[root@localhost ~]# inotifywait -mrq -e modify,create,move,delete  /opt/myweb   ‘监控’
3、通过inotifywait触发rsync同步操作

​ 使用while、read持续获取监控结果

[root@client inotify-tools-3.14]# vim /opt/inotify.sh#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /opt/myweb/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/myweb/ backuper@192.168.48.128::wwwroot"$INOTIFY_CMD | while read DIRECTORY EVENT FILE
doif [ $(pgrep rsync | wc -l) -le 0 ] ; then$RSYNC_CMD
#       echo "${FILE} was rsynced" >>/opt/inotify_rsync.logfi
done[root@client opt]# chmod +x inotify.sh    ‘添加权限’
4、 关闭只读模式,并重启服务
(在同步源服务器上配置)
[root@localhost html]# vim /etc/rsyncd.conf

[root@rsync html]# kill $(cat /var/run/rsyncd.pid)    ‘关闭rsyncd服务’
[root@rsync html]# rsync --daemon     ‘启动rsyncd服务’
[root@rsync html]# netstat -anpt |grep rsync
tcp        0      0 192.168.48.128:873      0.0.0.0:*               LISTEN      5785/rsync
[root@rsync html]# chmod 777 /var/www/html/

一定注意两边的同步目录权限都设置777。

5、在客户机上操作
[root@localhost ~]# /opt/inotify.sh   ‘执行脚本’
[root@localhost ~]# chmod 777 /opt/myweb/     ‘需要在开一个终端’
[root@localhost ~]# vim /opt/myweb/abcd.html     ‘里面插入任意数据’

这时在同步源服务器上可以发现多了个文件。

如果在客户端删除这个文件,同时源服务器也会同步删除这个文件的 。

远程同步工具 ---- rsync相关推荐

  1. 远程文件同步工具--rsync

    远程文件同步工具--rsync rsync rsync同步简介 rsync同步方式 配置源的两种方法 rsync常用命令 rsync实验 1.本地复制 2.远程复制 1.配置rsync服务器 2.为备 ...

  2. linux同步工具rsync​

    linux同步工具rsync 一.rsync命令 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地 ...

  3. linux有哪些实时同步工具,rsync文件同步工具常见模式有哪些?linux系统

    互联网时代发展迅速,Linux运维技术的需求更多推进不少.市场对于Linux运维人才的需求也在逐渐加大.Linux行业崛起,在云计算大环境下,市场上对高级运维人员的需求将越来越大.文件同步工具rsyn ...

  4. Linux日常运维管理技巧(四)文件同步工具-rsync、Linux系统日志、dmesg命令、lastb命令查看登录失败的用户、screen工具虚拟屏幕

    目录 Linux文件同步工具-rsync Linux系统日志 dmesg命令 lastb命令 screen工具 Linux文件同步工具-rsync rsync命令是一个远程数据同步工具,可通过LAN/ ...

  5. 保利威视平台:视频远程同步工具

    对于远程服务器上的视频文件,Polyv有一个远程抓取接口, 不过批量视频抓取,可以采用视频远程同步工具. 导入任务 先用文本编辑器创建文件,整理好视频的链接和对应的标题逗号分隔,每一行一条列表,保存为 ...

  6. rsync - 远程同步工具

    一直没有对这个命令太有深入的理解 简介 rsync 即 remote sync,一个远程与本地文件同步工具.rsync 使用的算法能够最小化所需复制的数据,因为它只移动那些修改了的文件. rsync ...

  7. 远程同步软件rsync(一)

    文章目录 1. RSYNC概述 2. RSYNC传输模式 2.1 本地传输 2.2 远程传输 2.3 守护进程 2.3.1 RSYNC安装 2.3.2 RSYNC配置 2.3.3 RSYNC启动 3. ...

  8. rsync java_Linux 同步工具rsync学习

    说到"同步",不得不提的利器就是rsync,今天就来说说我从这个工具中看到的同步的艺术. [不带任何选项] 我们经常这样使用rsync: $ rsync main.c machin ...

  9. Ubuntu 文件同步工具 rsync

    cp和scp是ubuntu中文件拷贝常用的两个命令,一般在同一台服务器上我们是用cp命令,跨服务时使用过scp命令,但是如果做文件同步的话,rsync要比上述两个命令更好用一些,跨不跨服务器都是如此. ...

最新文章

  1. 皮一皮:这大概就是年轻的味道...
  2. 前端一HTML:二十CSS的三种存在方式
  3. 深度学习核心技术精讲100篇(四十九)-深度学习之关联规则
  4. Spark 任务调度机制详解
  5. 《阿里云SRE技术期刊》2020年10月【电子版】
  6. ORA-00845: MEMORY_TARGET not supported on this system
  7. 查找路径php.ini文件到底在哪里?
  8. eureka依赖导入失败以及eureka中没有@EnableEurekaServer异常
  9. 基于python解析网易云歌单.
  10. word怎么显示左边目录?目录大纲(视图 --> 导航窗格)
  11. C# WinForm 功能代码备忘-刘欣
  12. 查看linux主机多少位,linux怎么查看系统是32位还是64位的方法
  13. CPU微指令相关概念
  14. 编程中常用的英文单词
  15. 读取excel表格内容,并写入到word文档中
  16. 微信开工具报getLocation:fail, the permission value is offline verifying
  17. Windows 11 版本介绍
  18. 【C进阶】之宏定义的扩展
  19. ISO21434车辆网络安全解读-2.组织网络安全管理
  20. 赴美IPO后,美菜网还能在卖菜行业保持“低调”吗?

热门文章

  1. 海外直连100M跟国内5m服务器,云都网络推出美国高防服务器直连回国带宽100M独享CN2 GIA...
  2. 同义词、近义词、反义词词典
  3. 详解UI设计师与美工区别(附UI设计学习线路图)
  4. 阿里企业邮箱登录入口
  5. Java 8时间和日期API 20例
  6. JAVAEE基础第一节
  7. 【QT/C++】基于QT开发的一款A-SOUL元素的视频播放器(附源码)
  8. 第三方直接订阅公众号的功能
  9. 张钜楷:1.20黄金晚间行情如何操作、黄金白银TD最新操作建议及解套
  10. ABC281 E - Least Elements