远程同步工具 ---- rsync
远程同步工具 ---- 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相关推荐
- 远程文件同步工具--rsync
远程文件同步工具--rsync rsync rsync同步简介 rsync同步方式 配置源的两种方法 rsync常用命令 rsync实验 1.本地复制 2.远程复制 1.配置rsync服务器 2.为备 ...
- linux同步工具rsync
linux同步工具rsync 一.rsync命令 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地 ...
- linux有哪些实时同步工具,rsync文件同步工具常见模式有哪些?linux系统
互联网时代发展迅速,Linux运维技术的需求更多推进不少.市场对于Linux运维人才的需求也在逐渐加大.Linux行业崛起,在云计算大环境下,市场上对高级运维人员的需求将越来越大.文件同步工具rsyn ...
- Linux日常运维管理技巧(四)文件同步工具-rsync、Linux系统日志、dmesg命令、lastb命令查看登录失败的用户、screen工具虚拟屏幕
目录 Linux文件同步工具-rsync Linux系统日志 dmesg命令 lastb命令 screen工具 Linux文件同步工具-rsync rsync命令是一个远程数据同步工具,可通过LAN/ ...
- 保利威视平台:视频远程同步工具
对于远程服务器上的视频文件,Polyv有一个远程抓取接口, 不过批量视频抓取,可以采用视频远程同步工具. 导入任务 先用文本编辑器创建文件,整理好视频的链接和对应的标题逗号分隔,每一行一条列表,保存为 ...
- rsync - 远程同步工具
一直没有对这个命令太有深入的理解 简介 rsync 即 remote sync,一个远程与本地文件同步工具.rsync 使用的算法能够最小化所需复制的数据,因为它只移动那些修改了的文件. rsync ...
- 远程同步软件rsync(一)
文章目录 1. RSYNC概述 2. RSYNC传输模式 2.1 本地传输 2.2 远程传输 2.3 守护进程 2.3.1 RSYNC安装 2.3.2 RSYNC配置 2.3.3 RSYNC启动 3. ...
- rsync java_Linux 同步工具rsync学习
说到"同步",不得不提的利器就是rsync,今天就来说说我从这个工具中看到的同步的艺术. [不带任何选项] 我们经常这样使用rsync: $ rsync main.c machin ...
- Ubuntu 文件同步工具 rsync
cp和scp是ubuntu中文件拷贝常用的两个命令,一般在同一台服务器上我们是用cp命令,跨服务时使用过scp命令,但是如果做文件同步的话,rsync要比上述两个命令更好用一些,跨不跨服务器都是如此. ...
最新文章
- 皮一皮:这大概就是年轻的味道...
- 前端一HTML:二十CSS的三种存在方式
- 深度学习核心技术精讲100篇(四十九)-深度学习之关联规则
- Spark 任务调度机制详解
- 《阿里云SRE技术期刊》2020年10月【电子版】
- ORA-00845: MEMORY_TARGET not supported on this system
- 查找路径php.ini文件到底在哪里?
- eureka依赖导入失败以及eureka中没有@EnableEurekaServer异常
- 基于python解析网易云歌单.
- word怎么显示左边目录?目录大纲(视图 --> 导航窗格)
- C# WinForm 功能代码备忘-刘欣
- 查看linux主机多少位,linux怎么查看系统是32位还是64位的方法
- CPU微指令相关概念
- 编程中常用的英文单词
- 读取excel表格内容,并写入到word文档中
- 微信开工具报getLocation:fail, the permission value is offline verifying
- Windows 11 版本介绍
- 【C进阶】之宏定义的扩展
- ISO21434车辆网络安全解读-2.组织网络安全管理
- 赴美IPO后,美菜网还能在卖菜行业保持“低调”吗?