概述
同步源
相关命令
配置rsync
基础思路
两种表达方法
免交互式
inotify
Inotify 是一个 Linux内核的特性,可以监控文件系统的变动情况,并做出通知响应,辅助软件:inotify-tools
优化inotify内核参数
/etc/sysctl.conf
max_user_instances :最多监控实例
max_queue_events :监控事件队列大小
max_user_watches :每个实例最多监控文件数
例如:
vim /etc/sysctl.conf
max_queue_events = 16384
max_user_instances = 1024
max_user_watches = 1048576
inotify-tools辅助工具
#---------参数解释------------
-m 持续监控
-r 递归监控所有子对象
-q 简化输出信息
-e 指定要监控哪些事件类型
modify 修改
create 创建
attrib 属性更改
move 移动
deletc 删除
编写同步脚本
vim /opt/inotify_rsynx.sh
#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
if [ $(pgrep rsync | wc -l) -eq 0 ] ; then
$RSYNC_CMD
fi
done
配置rsync下行同步
配置Master主机
systemctl stop firewalld.service
setenforce 0
rpm -q rsync
yum -y install rsync
(2)/etc/rsyncd.conf 配置文件
vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = yes
address = 192.168.221.20
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.221.0/24
[wwwroot]
path = /var/www/html
comment = Document Root of www.srs.com
read only = yes
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = backuper srs
secrets file = /etc/rsyncd_users.db
#---------配置解释----------------------------------------------
uid = root
gid = root
use chroot = yes
address = 192.168.221.20
port 873
/etc/services | grep rsync
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.221.0/24
[wwwroot]
path = /var/www/html
comment = Document Root of www.srs.com
read only = yes
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = backuper srs
secrets file = /etc/rsyncd_users.db
vim /etc/rsyncd_users.db
srs:123456
chmod 600 /etc/rsyncd_users.db
yum -y install httpd
chmod +r /var/www/html
ls -ld /var/www/html
rsync --daemon
netstat -natp | grep rsync
配置Slave主机
systemctl stop firewalld.service
setenforce 0
yum -y install rsync
cd /opt
mkdir srs
chmod 777 srs
vim /etc/server.pass
123456
chmod 600 /etc/server.pass
验证同步
rsync+inotify实时同步
配置master
配置Slave主机
max_queue_events(监控事件队列,默认值为16384)
max_user_instances(最多监控实例数,默认值为128)
max_user_watches(每个实例最多监控文件数,默认值为8192)
cat /proc/sys/fs/inotify/max_queued_events
cat /proc/sys/fs/inotify/max_user_instances
cat /proc/sys/fs/inotify/max_user_watches
vim /etc/sysctl.conf
fs.inotify.max_queued_events = 17000
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
sysctl -p
安装inotify-tools
yum -y install gcc gcc-c++ make
tar zxvf inotify-tools-3.14.tar.gz -C /opt
cd /opt/inotify-tools-3.14/
./configure && make && make install
验证同步
Slave(192.168.221.30)
cd /opt/srs
touch 1.html
ls
rm -rf 1.html
ls
Master(192.168.221.20)
cd /var/www/html
ls