已整理-rsync+inotify文件实时同步
作者:互联网
目录:
语法: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表示删除目标文件夹内多余的文档
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