ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

已整理-rsync+inotify文件实时同步

2022-06-19 19:33:55  阅读:188  来源: 互联网

标签:opt repo rsync inotify 实时 ceph root 目录


 

目录:

  1、rsync本地同步操作

  2、rsync远端同步操作

  3、rsync+inotify实时同步

 

1、rsync本地同步操作

语法:rsync [选项...] 源目录 目标目录

 

功能:同步与复制的差异
复制:完全拷贝源到目标
同步:增量拷贝,只传输变化过的数据

参数详解:

-n:       测试同步过程,不做实际修改
--delete:   删除目标文件夹内多余的文档
-a:       归档模式,相当于-rlptglD
-v:       显示详细操作信息
-z:       传输过程中启用压缩/解压
-r:       递归,包括目录/子目录及所有文件
-l:       保留符号链接文件
-p/-t:     保留文件的权限、时间标记
-o/-g:     保留文件的属主/属组标记
-D:       保留设备文件及其它特殊文件

 

示例:

# rsync -av /opt/ceph-nautilus /opt/arch/       #把ceph-nautilus这个目录同步到/opt/arch这个目录下面,且在目录目录下生成ceph-nautilus目录

# rsync -av /opt/ceph-nautilus/ /opt/arch/       #把ceph-nautilus这个目录里面的文件,同步复制到/opt/arch这个目录下面,不会生成ceph-nautilus目录

# rsync -av --delete /root/repo /opt/arch/       #保持源和目标文件一致,--delete表示删除目标文件夹内多余的文档

 

 

2、rsync远端同步操作
列出ssh服务端资源:

rsync user@host:远程目录/
下载: rsync [...]   user@host:远程目录   本地目录
上传: rsync [...]   本地目录   user@host:远程目录

 

示例:

# rsync -av --delete /root/repo root@10.10.16.210:/opt/remote/         #上传至:/opt/remote/目录下

 


3、rsync实时同步
要求:
【1】、生成公钥与私钥,完成ssh无密码验证;

# ssh-keygen             #源主机:ceph-admin,生成/root/.ssh/id_rsa
# ssh-copy-id root@ceph-01     #把公钥复制到:ceph-01:/root/.ssh/authorized_keys 的这个文件中;

源主机: ceph-admin:/root/.ssh/known_hosts 里面内容是源主机登陆目标主机的日志信息;

 

【2】、监控目录内容变化:

# yum install inotify-tools     #安装inotify-tools工具,需要先yum install epel-release 安装epel源

inotifywait        #监控程序

基本用法:

inotifywait     [选项]     目标文件夹

 

常用命令选项:

-m:       持续监控(捕获一个事件后不退出)
-r:       递归监控、包括子目录及文件
-q:       减少屏幕输出信息
-e:       指定监视的modify,move,create,delete,attrig等事件类别;

 

监视文件夹的变化:

# inotifywait -rmq /root/repo/           #另开一个shell窗口,在/root/repo目录下面操作创建文件,可以看到相关的信息输出
/root/repo/ CREATE wowo.txt
/root/repo/ OPEN wowo.txt
/root/repo/ ATTRIB wowo.txt
/root/repo/ CLOSE_WRITE,CLOSE wowo.txt

 

书写实时同步脚本:

# vim irsync.sh
#! /bin/bash
while inotifywait -rqq /root/repo/     #qq代表屏幕输出
do
  rsync -a --delete /root/repo root@ceph-01:/opt/remote/
done

# chmod +x irsync.sh
# ./irsync.sh &              #后台执行

# fg                     #调度到前台执行, Ctrl+z 暂停并调度到后台
# bg 1                   #让任务1在后台运行起来

 

标签:opt,repo,rsync,inotify,实时,ceph,root,目录
来源: https://www.cnblogs.com/reachos/p/16391148.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有