- rsync远程同步
- rsync服务器
- Rsync介绍
- 同步方式
- 增量备份
- rsync命令
- 本地复制
- 配置源的两种表示方法
- inotify简介
- 配置rsync下行同步(远程复制)
- 1.master(192.168.254.10)
- 2.slave(192.168.254.20)
- rsync+inotify实时同步
- 1.master(192.168.254.10)
- 2.slave(192.168.254.20)
rsync是一筐开源的、快速的(相对)、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。并且可以不进行该表原有数据的属性信息,实现数据的备份迁移特性。
rsync软件适用于unix/linux/windows等多种 *** 作系统平台
rsync是一个快速和非常方便给的文件复制工具。他能本地复制,远程复制,或者远程守护进程方式复制,它提供了大量的参数来控制其行为的各个方面,并且允许非常灵活的方式来实现文件的传输复制
以其delta-transfer算法闻名
rsync监听端口:873
rsync运行模式:C/S
同步方式1.全量备份
2.原有的数据全部传送
3.把原来的文件和新的文件一起统一传送
4.全量复制,效率低
增量备份在传输数据之前通过一些算法通过你有的数据和我有的数据进行对比,把不一样的数据通过网络传输增量复制,效率高
rsync命令格式:
rsync [选项] 原始位置 目标位置
常用 -a -v -z
本地复制rsync -avz /abc /opt rsync -avz /abc/ /opt/
区别
[root@localhost ~]# cd /opt/ [root@localhost opt]# mkdir /abc [root@localhost opt]# cd /abc/ [root@localhost abc]# ls [root@localhost abc]# touch 1.txt 2.txt [root@localhost abc]# ls 1.txt 2.txt [root@localhost abc]# cd / [root@localhost /]# rsync -avz /abc /opt/
[root@localhost opt]# rm -rf abc/ [root@localhost opt]# cd - / [root@localhost /]# rsync -avz /abc/ /opt/配置源的两种表示方法
格式一:
用户名@主机地址::共享模块名 例: rsync -avz backuper@192.168.254.200::wwwroot /root #backuper指的是用户身份 #wwwroot代表的是这个模块
格式二:
rsync://用户名@主机地址/共享模块名 例: rsync -avz rsync://backuper@192.168.254.200/wwwroot /root #类似URL的方式传输
#URL:具体的位置点
#URI:标识的是拥有同一特性或类型的一个集合
inotify简介可以监控文件系统的变动情况,并作出通知响应
-
调整inotify内核参数(优化)
-
/etc/sysctl.conf(内核参数配置文件)
max_queue_events #监控事件队列大小 max_user_instances #最多监控实例数 max_user_watches #每个实例最多监控文件数
-
inotifywait:用于持续监控,实时输出结果
-
inotifywatch:用于短期监控,任务完成后再输出结果
例:
inotifywait -mrq -e modify,create,move,delete /var/www/html
环境配置
下行同步:将master服务器数据备份到slave服务器
1.master(192.168.254.10)systemctl stop firewalld.service setenforce 0 yum -y install httpd rsync vim /etc/rsyncd.conf uid = nobody gid = nobody use chroot = yes address = 192.168.254.10 port 873 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid hosts allow = 192.168.254.0/24 [wwwroot] path = /var/www/html comment = document Root of www.lic.com read only = yes dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z auth users = rui secrets file = /etc/rsyncd_users.db
vim /etc/rsyncd_users.db rui:123123 chmod 600 /etc/rsyncd_users.db rsync --daemon netstat -natp | grep rsync cd /var/www/html touch aaa.html bbb.html ls2.slave(192.168.254.20)
systemctl stop firewalld.service setenforce 0 yum -y install rsync cd /opt mkdir hhh chmod 777 hhh
vim /etc/server.pass 123123 chmod 600 /etc/server.pass rsync -az --delete --password-file=/etc/server.pass rui@192.168.254.10::wwwroot /opt/hhh ls hhhrsync+inotify实时同步 1.master(192.168.254.10)
vim /etc/rsyncd.conf read only = no kill `cat /var/run/rsyncd.pid` netstat -natp | grep rsync rsync --daemon netstat -natp | grep rsync chmod 777 /var/www/html2.slave(192.168.254.20)
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 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/hhh/" RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /opt/hhh/ rui@192.168.254.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 & cd /opt/haha touch ccc.html rm -rf aaa.html
master(192.168.254.10)上验证
cd /var/www/html ls
此处报错是因为我们以匿名用户身份登陆的
更改uid和gid可以避免报错
vim /etc/rsync.conf
slave(192.168.254.20)
master(192.168.254.10)
.end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)