linux cpu占用率如何看
501
2022-10-14
在CentOS7上配置rsync源服务器+inotify实时同步
概述
rsync是一个开源的快速备份工具,可以再不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,再传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
原理
配置rsync源服务器
1.检查rsync是否安装
[root@localhost ~]# rpm -q rsync rsync-3.0.9-18.el7.x86_64
2.修改rsync默认配置文件,位于/etc/rsyncd.conf。
插入以下内容 uid = nobody gid = nobody use chroot = yes //禁锢在源目录// address = 192.168.126.138 //监听地址// port 873 //监听端口// log file = /var/log/rsyncd.log //日志文件位置// pid file = /var/run/rsyncd.pid //存放进程ID的文件位置// hosts allow = 192.168.126.0/24 //允许访问的客户机地址// # max connections = 4 # pid file = /var/run/rsyncd.pid # exclude = lost+found/ # transfer logging = yes # timeout = 900 # ignore nonreadable = yes # dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 [ //共享模块名称// path = /var/ //源目录的实际路径// read only = no //是否为只读// dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 //同步时不再压缩的文件类型// auth users = backuper //授权账户// secrets file = /etc/rsyncd_users.db //存放账户信息的数据文件//
3.为备份账户创建数据文件
根据上一步的设置,创建账号数据文件,添加一行用户记录,以冒号分隔,用户名称为backup,密码为abc123。由于账号信息采取明文存放,因此应调整文件权限,避免账号信息泄露。
[root@localhost ~]#vim /etc/rsyncd_users.db backuper:abc123 [root@localhost ~]#chmod 600 /etc/rsyncd_users.db
4.开启rsync服务,运行参数为 --daemon。
[root@localhost opt]# systemctl stop firewalld.service [root@localhost opt]# setenforce 0 [root@localhost opt]# rsync --daemon [root@localhost opt]# netstat -ntap | grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2934/rsync
使用rsync备份工具
配置源的方法:
在执行运程同步任务时,rsync命令需要指定同步源服务器中的资源位置。rsync同步源的资源表示方式为“用户名@主机地址::共享模块名”或者“rsync://用户名@主机地址/共享模块名”,前者为两个冒号分隔形式,后者为URL地址形式。
rsync -avz backuper@192.168.175.129::/opt/ rsync -avz rsync://backuper@192.168.175.129//opt/
1.执行以下操作将源服务器中的wwwroot共享模块,下载到客户机的本地/var/www/html目录下。
源服务器: [root@localhost ~]# cd /var/www/html/ [root@localhost html]# echo "123" > 111.txt [root@localhost html]# echo "456" > 222.txt [root@localhost html]# ls 111.txt 222.txt 客户端: [root@localhost opt]# rsync -avz backuper@192.168.126.138::./ //下载到当前目录// Password: receiving incremental file list ./ 111.txt 222.txt sent 102 bytes received 221 bytes 23.93 bytes/sec total size is 8 speedup is 0.02 [root@localhost html]# ls 111.txt 222.txt
2.在客户端上传文件到源服务器
[root@localhost opt]#mkdir b1 b2 b3 b4 [root@localhost opt]# ls b1 b2 b3 b4 b5 rh [root@localhost opt]# rsync -avz backuper@192.168.126.138::./ #上传 Password: receiving incremental file list ./ 111.txt 222.txt sent 102 bytes received 221 bytes 23.93 bytes/sec total size is 8 speedup is 0.02 #上传成功 源服务器上查看: [root@localhost ~]# cd /var/www/html/ [root@localhost html]# ls b1 b2 b3 b4 b5 rh
注意: 上传前需要把源服务器rsync的配置文件rsyncd.conf中的uid、gid修改为root
配置rsync+inotify实施同步
1.调整inotify内核参数
当要监控的目录、文件数量较多或者变化较频繁时,建议加大这三个参数的值。可以直接修改/etc/sysctl.conf的配置文件,将管理队列、实例数、监控数进行设置。
[root@localhost html]# vim /etc/sysctl.conf # For more information, see sysctl.conf(5) and sysctl.d(5). //添加// fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576 [root@localhost html]# sysctl -p //启动// fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576
2.安装inotifi-tools
使用inotify机制还需要安装inotifi-tools,以便提供inotifywait和inotifywatch辅助工具程序,用来监控和汇总改动情况。
[root@localhost rs]# tar zxvf inotify-tools-3.14.tar.gz -C /opt/ #解包 [root@localhost opt]# cd inotify-tools-3.14/ [root@localhost inotify-tools-3.14]# yum install gcc gcc-c++ make -y #安装编译软件 [root@localhost inotify-tools-3.14]# ./configure [root@localhost inotify-tools-3.14]#make && make install
3.编写触发式同步脚本
root@localhost opt]# vim inotify.sh #!/bin/bash INOTIFY_CMD="inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/" RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/backuper@192.168.126.138::wwwroot/" $INOTIFY_CMD | while read DIRECTORY EVENT FILE do if [ $(pgrep rsync | wc -l) -le 0 ] ; then $RSYNC_CMD fi done
上述脚本用来检测本机/var/-mrq -e modify,create,move,delete /var/html]# inotifywait -mrq -e modify,create,move,delete /var///静默等待状态//
2)打开源服务器的另一个窗口在/var/~]# cd /var/www/html/ [root@localhost html]# ls [root@localhost html]# echo "this is 111" > 111.txt //写入文件// [root@localhost html]# echo "this is 222" > 222.txt [root@localhost html]# rm -rf 111.txt //删除文件//
3)查看源服务器的更新触发状态
[root@localhost html]# inotifywait -mrq -e modify,create,move,delete /var/www/html/ /var/CREATE 111.txt /var/MODIFY 111.txt /var/CREATE 222.txt /var/MODIFY 222.txt /var/DELETE 111.txt //监控端已有反馈//
4)查看服务器中的/var/html]# ls 111.txt 222.txt [root@localhost html]# ls 222.txt
实验成功
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~