IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> rsync+inotify介绍 -> 正文阅读

[系统运维]rsync+inotify介绍

rsync远程同步

rsync远程同步是一款主要为快速增量备份的工具;可以用于本地的复制,也可以用户跨主机(ssh/rsync主机同步)之间的复制;官网:https://rsync.samba.org/

搭建rsync

配置rsync源服务器
[root@node1 ~]# yum -y install rsync
[root@node1 ~]# vim /etc/rsyncd.conf	#把所有内容删掉然后添加下面的内容
uid = nobody	#以匿名用户方式登录
gid = nobody
use chroot = yes	#禁锢源目录
address = 192.168.218.214	#指定rsync源服务器地址
port 873		#指定端口号
log file = /var/log/rsyncd.log	#日志位置
pid file = /var/run/rsyncd.pid	#pid位置
hosts allow = 192.168.218.214/24	#允许访问的客户机网段
[wwwroot]
path = /var/www/html		#源目录的路径
comment = Document Root of www.ljm.com		#标识rsync源的域名
read only = yes				#开启只读
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = backuper		#授权用户,可以设置多个用户,多个用户以空格区分
secrets file = /etc/user.db	#存放用户信息的数据文件


[root@node1 ~]# vim /etc/user.db	#编辑该文件
backuper:123		#写入用户和用户的密码
[root@node1 ~]# chmod 600 /etc/user.db
[root@node1 ~]# mkdir -p /var/www/html
[root@node1 ~]# chmod +r /var/www/html
[root@node1 ~]# ls -ld /var/www/html/
drwxr-xr-x 2 root root 6 1117 2020 /var/www/html/
[root@node1 ~]# rsync --daemon		#开启rsync服务
[root@node1 ~]# netstat -napt |grep 873
tcp        0      0 192.168.218.214:873     0.0.0.0:*               LISTEN      86385/rsync

[root@node1 ~]# echo "persona" > /var/www/html/1.txt
[root@node1 ~]# cat /var/www/html/1.txt
persona

客户端操作

[root@node2 elasticsearch-head]# mkdir /abc
[root@node2 elasticsearch-head]# rsync -avz backuper@192.168.218.214::wwwroot /abc/		#同步源服务器的wwwroot全局模块指定的源目录到/abc目录下
Password: 
receiving incremental file list
./
1.txt

sent 46 bytes  received 113 bytes  35.33 bytes/sec
total size is 8  speedup is 0.05
[root@node2 elasticsearch-head]# cd ~
[root@node2 ~]# ls /abc
1.txt
[root@node2 ~]# cat /abc/1.txt
persona

设置免密登录

[root@node2 ~]# echo "123" > /etc/server.pass
[root@node2 ~]# chmod 600 /etc/server.pass
[root@node2 ~]# rsync -avz --password-file=/etc/server.pass backuper@192.168.218.214::wwwroot /abc/		#免密登录要在同步时指定密码文件
receiving incremental file list

sent 20 bytes  received 58 bytes  156.00 bytes/sec
total size is 8  speedup is 0.10

搭建inotify

服务端配置

[root@node1 ~]# vim /etc/rsyncd.conf	#编辑rsync配置文件
uid = root		#改为root
gid = root		
read only =no	#关闭只读

#重启rsync服务
[root@node1 ~]# kill `cat /var/run/rsyncd.pid`
[root@node1 ~]# netstat -napt |grep 873
[root@node1 ~]# rsync --daemon
[root@node1 ~]# netstat -napt |grep 873
tcp        0      0 192.168.218.214:873     0.0.0.0:*               LISTEN      87070/rsync

客户端配置

[root@node2 ~]# vim /etc/sysctl.conf
fs.inotify.max_queued_events = 32768
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
[root@node2 ~]# sysctl -p
[root@node2 ~]# yum -y install gcc gcc-c++
#安装inotify
[root@node2 ~]# tar zxvf inotify-tools-3.14.tar.gz -C /opt
[root@node2 ~]# cd /opt/inotify-tools-3.14/
[root@node2 inotify-tools-3.14]# ./configure
[root@node2 inotify-tools-3.14]# make && make install

[root@node2 abc]# cd ~
#创建一个实时监控并同步的脚本
[root@node2 ~]# vim /opt/inotify.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /abc/"	#监控/abc目录的各种改动操作
RSYNC_CMD="rsync -apzH --delete --password-file=/etc/server.pass /abc/ backuper@192.168.218.214::wwwroot/"		#进行同步,将/abc目录下的文件同步到源服务器上
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
        if [ $(pgrep rsync | wc -l) -le 0 ] ; then		#进行判断,如果/abc目录下有修改则进行同步
                $RSYNC_CMD
        fi
done

[root@node2 ~]# chmod +x /opt/inotify.sh
[root@node2 ~]# chmod +x /etc/rc.d/rc.local
[root@node2 ~]# echo "/opt/inotify.sh" >> /etc/rc.d/rc.local	#设置开机自启
[root@node2 ~]# sh -x /opt/inotify.sh		#执行脚本
然后再开一个终端,进入/abc/目录下创建文件
[root@node2 inotify-tools-3.14]# cd /abc
[root@node2 abc]# ls
1.txt  2.txt  666
[root@node2 abc]# touch 123456

服务端查看/var/www/html目录
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:58:38  更:2021-08-15 15:58:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 19:38:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计