rsync

1.安装rsync包
yum install rsync
2.两种工作模式
2.1.本地
rsync -r /var/www/image/ /var/www/test/
2.2.远程
rsync -r /var/www/test/ root@192.168.56.102:/var/www/test/

rsync -r root@192.168.56.102:/var/www/test/ /var/www/test/
3.两种认证协议
3.1.ssh认证
rsync -r /var/www/test/ root@192.168.56.102:/var/www/test/
3.2.rsync 协议认证
3.2.1.配置账号密码文件(远程)
echo -e "image:123456\ntest:123456" > /etc/rsyncd.passwd
chmod 600 /etc/rsyncd.passwd
3.2.2.修改配置文件 /etc/rsyncd.conf(远程)

# /etc/rsyncd: configuration file for rsync daemon mode
uid = root
gid = root
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid[image]
path = /var/www/image/
# https://download.samba.org/pub/rsync/rsyncd.conf.5#auth_users
auth users = image
# https://download.samba.org/pub/rsync/rsyncd.conf.5#secrets_file
secrets file = /etc/rsyncd.passwd
# 此参数确定客户端是否能够上传文件。如果“只读”为真,则任何尝试上传都将失败。如果“只读”为假,则如果守护程序端的文件权限允许上传,则可以上传。默认情况下所有模块都是只读的。请注意,“ auth users ”可以基于每个用户覆盖此设置。
read only = false[test]
path = /var/www/test/
# https://download.samba.org/pub/rsync/rsyncd.conf.5#auth_users
auth users = test
# https://download.samba.org/pub/rsync/rsyncd.conf.5#secrets_file
secrets file = /etc/rsyncd.passwd
# 此参数确定客户端是否能够上传文件。如果“只读”为真,则任何尝试上传都将失败。如果“只读”为假,则如果守护程序端的文件权限允许上传,则可以上传。默认情况下所有模块都是只读的。请注意,“ auth users ”可以基于每个用户覆盖此设置。
read only = false

3.2.3.开启 rsyncd 服务(远程)
systemctl start rsyncd
3.2.4.配置密码文件实现无需手动输入密码(本地)
echo 123456 > /etc/rsync.image.passwd
chmod 600 /etc/rsync.image.passwd

echo 123456 > /etc/rsync.test.passwd
chmod 600 /etc/rsync.test.passwd
3.2.5.请求同步(本地)
rsync -r /var/www/image/ image@192.168.56.101::image
也可以使用 url 格式语法:
rsync -r /var/www/image/ rsync://image@192.168.56.101/image

inotify

1.安装inotify-tools包
yum install inotify-tools

rsync + inotify

1.创建脚本文件 /var/www/inotify_rsync.sh(本地)

#!/bin/bash
# 本地被监控目录
watch_dir=/var/www/image/
# 虚拟用户
user="image"
# 虚拟用户密码
export RSYNC_PASSWORD=123456
# 远程模块名
module="image"
# 远程主机ip
ip=192.168.56.101
# 先整体同步一次
rsync -azc --delete ${watch_dir} ${user}@${ip}::${module}
# 切换到被监控目录下,然后用inotifywait监控./目录,这样后期就可以用-R选项同步新增的子目录
cd $watch_dir
/usr/bin/inotifywait -mrq --timefmt '%Y-%m-%d %H:%M:%S' --format '%w%f:%Xe:%T' -e create,delete,modify,move,attrib,close_write ./ \
--exclude=".*.swp" | \
while read line
do# $line的输出format为:文件路径:事件:时间# 获取文件的绝对路径FILE=$(echo $line | awk -F: '{print $1}')  # 获取监控的事件EVENT=$(echo $line | awk -F: '{print $2}') # 监控到对文件的下述行为后,只把文件同步到远端if [[ $EVENT =~ 'CREATE' ]] || [[ $EVENT =~ 'MODIFY' ]] || [[ $EVENT =~ 'CLOSE_WRITE' ]] || [[ $EVENT =~ 'MOVED_TO' ]] || [[ $EVENT =~ 'ATTRIB' ]];thenrsync -azcR ${FILE} ${user}@${ip}::${module}fi    # 监控到涉及到目录的改动,将目录同步到远端,例如用dirname ${FILE}获取目录if [[ $EVENT =~ 'DELETE' ]] || [[ $EVENT =~ 'MOVED_FROM' ]];thenrsync -azcR --delete $(dirname ${FILE}) ${user}@${ip}::${module} &>/dev/nullfi
done &
# 末尾的&符号,代表在子shell中提交命令,这样进程的ppid就变为1,当前窗口关闭,该进程依然存活

2.创建/usr/lib/systemd/system/inotify_rsync.service开机自启文件(本地)

[Unit]
Description=inotify_rsync
Wants=network-online.target
[Service]
User=root
Type=forking
ExecStart=/usr/bin/bash /var/www/inotify_rsync.sh start
ExecStop=/usr/bin/bash /var/www//inotify_rsync.sh stop
SuccessExitStatus=143
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=inotify_rsync
[Install]
WantedBy=multi-user.target

3.创建日志配置文件 /etc/rsyslog.d/inotify_rsync.conf(本地)

if $syslogtag contains 'inotify_rsync' then /var/log/inotify_rsync.log
if $syslogtag contains 'inotify_rsync' then stop

4.启动(本地)
systemctl start inotify_rsync

rsync + inotify 同步数据相关推荐

  1. 利用ssh+rsync+inotify实现数据的异地实时同步

    在服务器中,通常结合计划任务.shell脚本来执行本地备份.为了进一步提高备份的可靠性,使用异地备份也是非常重要的,利用rsync工具,可以实现快速.高效的异地备份.本篇博客将配置rsync+cron ...

  2. rsync+inotify 实现数据实时同步

    Rsync (Rmote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计划来执行自动 ...

  3. Centos7.x Rsync+Inotify实现数据实时同步

    一.概述 rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的"Rsync演算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两 ...

  4. 通过rsync+inotify实现数据的实时备份

    在前面的博文中,我讲到过利用rsync实现数据的镜像和备份,但是要实现数据的实时备份,单独靠rsync还不能实现,本文就讲述下如何实现数据的实时备份. 一.rsync的优点与不足 与传统的cp.tar ...

  5. rsync+inotify实现数据的实时备份

    rsync+intofy实现数据的实时备份 一.环境 1.主机信息: server node0  192.168.32.30  /var/www/html client node1  192.168. ...

  6. rsync~inotify同步复制

    inotfy重要参数 用法实例 inotifywait -mrq -e modify,create,delete,attrib /data/ inotifywait -mrq -e modify,cr ...

  7. 十八、Rsync 远程同步数据

    在linux系统下数据备份的工具.Rsync不仅可以远程同步数据(类似于scp [1]),当然还可以本地同步数据(类似于cp),但不同于cp或scp的一点是,rsync不像cp/scp一样会覆盖以前的 ...

  8. 5. rsync+inotify实时数据同步

    1.inotify简介 异步文件系统事件监控机制,Linux内核从2.6.13加入Inotify支持,通过Inotify可以监控文件系统中添加,删除,修改,移动等各种事件 实际是一种事件驱动机制,为应 ...

  9. linux下通过rsync+inotify 实现数据实时备份(远程容灾备份系统)

    本文出处参考:http://www.jbxue.com/article/10493.html 一.安装步骤(服务器端192.168.0.5) 1) 安装rsync 点击下载rsync-3.0.9.ta ...

最新文章

  1. 解决keepalived脑裂问题
  2. flutter的安装与设置
  3. 图示Windows Server2008 Feature Components
  4. NYOJ64 - 鸡兔同笼
  5. lightshot截图工具的安装及使用
  6. jdbc:initialize-database标签的研究
  7. Python爬虫实现英汉互译
  8. Word设置封面无页码,摘要罗马数字页码,正文数字页码
  9. 王家林人工智能AI 第七节课:四种性能优化Matrix编写AI框架实战(Gradient Descent的陷阱、及几种常见的性能优化方式实战)老师微信13928463918
  10. PDA车牌识别/手持机车牌识别SDK—应用处理
  11. linux安装perf工具
  12. Java学习笔记-IO
  13. 批量修改Excel单元格内某些文字的颜色
  14. 我理解的云桌面(或桌面云)
  15. Flux发布Elixir Essential限制器,提供对全景声的支持
  16. 数组:605.种花问题
  17. 树莓派+motion实现局域网简单监控
  18. Keras实例教程(4)之迁移学习
  19. freemind 要下载java_FreeMind下载、安装及使用介绍
  20. 品管七大手法-1检查表(转载)

热门文章

  1. 网络猫只有计算机和机顶盒两个口,光猫为什么有千兆口和百兆口,两个不同的接口?二者有什么区别?...
  2. 抖音赚钱记,新手如何玩转抖音,每天赚300起(连载十八)
  3. 基于HTML的《尼尔机械纪元》游戏专题网页设计
  4. 性能测试面试题汇总(一)
  5. 去掉vue项目的浏览器图标
  6. 网络电话通信优势优点在哪?
  7. Redis缓存面试题重点汇总
  8. GAN、扩散模型应有尽有,CMU出品的生成模型专属搜索引擎Modelverse来了
  9. 小程序IOS页面下拉回弹效果
  10. 器材摄影师与框架程序员