负载均衡⽂件同步
rsync是linux系统下的数据镜像备份⼯具。使⽤快速增量备份⼯具Remote Sync可以远程同步,⽀持本地复制,或者与其他SSH、rsync 主机同步。第⼀次同步时 rsync 会复制全部内容,但在下⼀次只传输修改过的⽂件。
rsync是基于Inotify开发的,类似于Inotify-tools的⼯具,rsync可以记录下被监听⽬录中发⽣变化的(包括增加、删除、修改)具体某⼀个⽂件或某⼀个⽬录的名字;
角质是什么查看是否安装rsync,Centos7系统⼀般都装了
ll /proc/sys/fs/inotify
如下三项,则已安装
-rw-r--r-- 1 root root 0 Nov 28 11:07 max_queued_events
-rw-r--r-- 1 root root 0 Nov 28 11:07 max_ur_instances
-rw-r--r-- 1 root root 0 Nov 28 11:07 max_ur_watches
A-- 作为rsync服务器 需要配置f⽂件
B-- 作为rsync客户端 不需要配置f,⽂件可为空
服务端
1.
#关闭linux
vi /etc/sysconfig/linux
#SELINUX=enforcing #注释掉
SELINUX=disabled #增加
#重启系统
开启防⽕墙tcp 873端⼝(Rsync默认端⼝),如果是阿⾥云设置安全组
2.修改/f (配置⽂件⽤⽂末的)
uid = root #运⾏ rsync 守护进程的⽤户
gid = root #运⾏ rsync 守护进程的组
u chroot = no #若为yes, 则需要root权限,并且在同步符号连接资料时只会同步名称不会同步内容
max connections = 5 #设置并发连接数,0表⽰⽆限制
strict modes = yes #是否检查⼝令⽂件的权限
port = 873 #端⼝,873为 rsync 默认端⼝
pid file = /var/run/rsyncd.pid #PID⽂件路径
lock file = /var/run/rsync.lock #锁⽂件路径
log file = /var/log/rsyncd.log #⽇志⽂件路径
#⾃定义模块名。模块是定义服务器哪个⽬录要被同步
[backup]
path = /data/test #同步⽬录的路径通过path指定
comment = This is a backup #定义注释说明的内容
ignore errors #忽略⼀些IO错误
read only = yes #是否允许客户端上传数据(双向同步),yes表⽰不允许
list = no #客户端请求显⽰模块列表时,本模块名称是否显⽰,默认为yes(true)
zebrahosts allow = 39.99.164.52 #设置哪些主机可以同步数据,多ip和⽹段之间使⽤空格分隔或者,分隔,没实践过
when you beliveauth urs = test #设置允许连接服务器的账户(⾃定义命名)
crets file = /s #密码验证⽂件名
3.
设置⽤户密码:
vim /s
test:123456
设置600权限:
top modelchmod 600 /s
给同步提⽰信息:
echo "welcecho "welcome to Backup Server" > /dome to Backup Server" > /d
启动服务:
rsync --daemon --config=/f
#关闭服务:pkill rsync
开机启动:
echo "rsync --daemon --config=/f" >> /etc/rc.local(这是6的)
7的
cat /usr/lib/systemd/system/rsyncd.rvice(看到rvice已经创建好了)
systemctl enable rsyncd
查看端⼝:
ps -ef |grep 873
客户端
1.创建测试⽬录及数据
2.写虚拟⽤户密码
设置密码⽂件:
touch /s
echo "123456" > /s
chmod 600 /s
测试:
correct什么意思rsync -avzP --delete --progress test@39.100.136.141::backup --password-file=/s /data/test ⽤test⽤户登陆到114.22.168.67的rsync服务器上,把backup模块中指定的数据同步到本地的/data/test⽬录下
Sersync安装
查看服务器内核是否⽀持inotify
列出⽂件⽬录
ll /proc/sys/fs/inotify
出现下⾯的内容、说明服务器内核⽀持inotify
-rw-r--r-- 1 root root 0 Dec 25 12:03 max_queued_events
-rw-r--r-- 1 root root 0 Dec 25 15:05 max_ur_instances
-rw-r--r-- 1 root root 0 Dec 25 12:03 max_ur_watches
修改inotify默认参数(inotify默认内核参数值太⼩):
修改inotify默认参数(inotify默认内核参数值太⼩)
sysctl -a | grep max_queued_events
sysctl -a | grep max_ur_watches
不值得英文sysctl -a | grep max_ur_instances
修改参数
sysctl -w fs.inotify.max_queued_events="99999999"
sysctl -w fs.inotify.max_ur_watches="99999999"
sysctl -w fs.inotify.max_ur_instances="65535"
⽣效
sysctl -p
参数说明:
max_queued_events:inotify队列最⼤长度,如果值太⼩,会出现” Event Queue Overflow “错误,导致监控⽂件不准确北京学大教育
max_ur_watches:要同步的⽂件包含多少⽬录,可以⽤:find /var/www/synctest -type d | wc -l 统计,必须保证
max_ur_watches值⼤于统计结果(这⾥/var/www/synctest为同步⽂件⽬录)
max_ur_instances:每个⽤户创建inotify实例最⼤值
tar xzf rsync2.5.4_64bit_binary_stable_
l-bak
haribo下⾯的不⽤看
安装inotify-tools
inotify-tools是为linux下inotify⽂件监控⼯具提供的⼀套c的开发接⼝库函数,同时还提供了⼀系列的命
令⾏⼯具,这些⼯具可以⽤来监控⽂件系统的事件。 inotify-tools是⽤c编写的,除了要求内核⽀持inotify外,不依赖于其他。inotify-tools提供两种⼯具,⼀是inotifywait,它是⽤来监控⽂件或⽬录的变化,⼆是inotifywatch,它是⽤来统计⽂件系统访问的次数。现在介绍⼀下它的使⽤⽅法。
tar xzf inotify-tools-3. ;cd inotify-tools-3.14
./configure --prefix=/data/inotify
make && make install
奥巴马任期加⼊环境变量
echo "PATH=$PATH:/data/inotify/bin/" >>/etc/profile && source /etc/profile
inotifywatch -h 查看⽤法
服务端rsync的配置⽂件:
uid = root
gid = root
u chroot = no
max connections = 5
strict modes = yes
port = 873
pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log
[backup]
我愿意 i dopath = /data/test
comment = This is a backup ignore errors
read only = yes
list = no
hosts allow = 39.99.164.52 auth urs = test
crets file = /s