介绍
Rync服务器
Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行改变原有数据的属性信息,实现数据的备份迁移特性。Rsync软件适用于unix/linux/windows等多种操作系统平台。 Rsync是一个快速和非常通用的文件复制工具。它能本地复制,远程复制,或者远程守护进程方式复制。它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制。它以其delta-transfer算法闻名。 rsync监听端口:873 rsync运行模式:C/S
部署代码
---------------------------------rsyn同步---------------------------------------
Master 192.168.150.100 rsync
Slave 192.168.150.101 rsync / inotify-tools-3.14.tar.gz
————Master操作:192.168.150.100————
systemctl stop firewalld.service
setenforce 0
yum -y install httpd rsync
vim /etc/rsyncd.conf
uid = nobody #用户id
gid = nobody #组id
use chroot = yes #开启禁锢在源目录
address = 192.168.150.100 #监听地址
port 873 #默认端口873
log file = /var/log/rsyncd.log #日志文件位置
pid file = /var/run/rsyncd.pid #存放进程id的文件位置
hosts allow = 192.168.150.0/24 #允许访问的主机,可为网段
[aaabbb] #共享模块名称
path = /var/www/html #源目录路径
comment = Document Root of www.kgc.com
read only = yes #是否为只读
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z #同步时不在压缩的文件类型
auth users = ky10 授权用户,多个账号以空格隔开
secrets file = /etc/rsyncd_users.db #存放账号信息的数据,一行一个
vim /etc/rsyncd_users.db #编辑用户帐号文件,固定格式
ky10:123123
chmod 600 /etc/rsyncd_users.db #官方要求赋予权限600,否则报错
rsync --daemon #开启服务
netstat -natp | grep rsync #检测端口服务是否启动
cd /var/www/html #切换至共享目录下
touch aaa.html bbb.html #创建两个文件
ls
#关闭服务 kill $(cat /var/run/rsyncd.pid)
————————Slave操作:192.168.150.101————————————
systemctl stop firewalld.service
setenforce 0
yum -y install rsync
cd /opt
mkdir haha #创建haha目录
chmod 777 haha #授权777
vim /etc/server.pass 编辑免交互密钥文件,密码写在第一行
123123
chmod 600 /etc/server.pass 授权600
rsync -az --delete --password-file=/etc/server.pass ky10@192.168.150.100::aaabbb /opt/haha
#rsync使用ky10用户,密钥文件/etc/server.pass将192.168.150.100的共享模块文件进行压缩,归档,同步至当前服务器的/opt目录下,并删除差异内容。
ls haha
使用计划任务进行每天定时更新
crontab -e
30 22 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass ky10@192.168.150.100::aaabbb /opt/haha
---------------------------------rsync+inotify实时同步-----------------------------------
——————Master(192.168.150.100)——————————
vim /etc/rsyncd.conf
read only = no #只读模式关闭,否则slave不可写入
kill `cat /var/run/rsyncd.pid` # 关闭
netstat -natp | grep rsync #查看端口
rsync --daemon #重启
netstat -natp | grep rsync
chmod 777 /var/www/html
————————Slave——————————————
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 = 32768 #加入3行
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
sysctl -p
yum -y install gcc gcc-c++
#放入安装包
tar zxvf inotify-tools-3.14.tar.gz -C /opt
cd /opt/inotify-tools-3.14/
./configure
make && make install
vim /opt/inotify.sh
#!/bin/bash #编辑一个允许脚本进行同步模式
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /opt/haha/"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/haha/ kiki@192.168.184.10::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
if [ $(pgrep rsync | wc -l) -le 0 ] ; then
$RSYNC_CMD
fi
done
cd /opt/
chmod +x inotify.sh
./inotify.sh & #在后台执行
按照上述步骤即可完成
主服务器:
从服务器
从服务器创建aaaw
主服务器同步
使用
RSYNC_CMD=“rsync -azH --delete --password-file=/etc/server.pass /opt/haha/ aaa@192.168.150.100::wwwroot”
该命令可使从服务器进行下行同步
小结:
Master对Slave进行下行同步 Slave对Master进行实施同步