Centos 7 下配置 Rsync 实时同步
rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支
持增量备份,保持链接和权限,且采用优化的同步算法,在传输前执行压缩,因此非
常适用于异地备份、镜像服务器等应用。
rsync的官方站点是http://rsync.samba.org/,由 Wayne Davison进行维护。作为一
种最常用的文件备份工具,rsync往往是 Linux和UNIX系统默认安装的基本组件之一
rsync 源服务器 配置
rpm -q rsync 可以查看系统自带了rsync服务
vim /etc/rsyncd.com
uid = nobody
gid = nobody
use chroot = yes ##禁锢在源目录
address = 192.168.x.x ##监听地址
port 873 ##监听端口
log file = /var/log/rsyncd.log ##日志文件位置
pid file = /var/run/rsyncd.pid ##进程ID位置
hosts allow = 192.168.x.0/24 允许访问的客户机地址
[wwwroot] ##共享模块名称
path = /var/www/html ##源目录的实际路径
comment = www.abc.cn
read only = yes ##是否为只读
dont compress = .gz .tgz .zip .z .Z .rpm .deb .bz2 ##同步时不再压缩的文件类型
auth users = backuper ##授权账户
secrets file = /etc/rsyncd_users.db ##存放账户信息的数据文件
vim /etc/rsyncd_users.db
backuper:abc123 ##格式为 账户名:密码
chmod 600 /etc/rsyncd_users.db ##因为账户信息明文存放,调整文件权限避免账号信息泄露
rsync –daemon ##启动rsync服务
netstat -ntap |grep rsync
rsync以873端口开启
rsync 源服务器就配置完成了
使用rsync 备份工具
在发起端 有两种方式可以访问rsync同步源,并下载到本地 /opt 目录下进行备份
格式一:
rsync -avz backuper@192.168.x.x::wwwroot /opt/
格式二:
rsync -avz rsync://backuper@192.168.x.x/wwwroot /opt/
这两种方法都需要进行交互 输入密码后即可进行备份。
为了在同步过程中不需要输入密码,需要创建一个密码文件。
vim /etc/server.pass
abc123
rsync -az –delete –password-file=/etc/server.pass backuper@192.168.x.x::wwwroot /opt
免交互进行备份
配置 rsync + inotify 实时同步
工作原理
Linux内核从2.6.13版本开始提供了 inotify通知接口,用来监控文件系统的各种
变化情况,如文件存取、删除、移动、修改等。利用这一机制,可以非常方便地实现
文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。
将rsync工具与inotify机制相结合,可以实现触发式备份(实时同步)—只要
原始位置的文档发生变化,就立即启动增量备份操作,否则处于静默
等待状态。这样,就避免了按固定周期备份时存在的延迟性、周期过密等问题。
实验过程
调整inotify内核参数
vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 ##监控事件队列
fs.inotify.max_user_instances = 1024 ##最多监控实例数
fs.inotify.max_user_watches = 1048576 ##每个实例最多监控文件数
tar xzvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make && make install
inotifywait -mrq -e modify,create,move,delete /var/www/html/
-m表示持续监控 -r 表示递归整个目录 -q 表示简化输出信息 -e 用来指定要监控哪些事件
此时在 /var/www/html 下的操作会被同步监控并显示
接下来编写触发时同步脚本
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/www/html/ backuper@192.168.x.x::wwwroot/”
INOTIFYCMD|whilereadDIRECTORYEVENTFILEdoif[INOTIFYCMD|whilereadDIRECTORYEVENTFILEdoif[(pgrep rsync | wc -l) -le 0 ] ; then
$RSYNC_CMD
fi
done
chmod +x inotify.sh
此脚本用来检测本机 /var/www/html 的变动情况,一旦有更新触发 rsync同步操作,上传备份至 192.168.x.x 的
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linux系统下 lsof命令详解
lsof(list open files)是linux下一个不常用的命令,可以列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以,lsof的功能很强大。一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied”。因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。 在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。 每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下: COMMAND:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等 DEVICE:指定磁盘的名称 SIZE:文件的大小 NODE:索引节点(文件在磁盘上的标识) NA...
- 下一篇
Linux(创建大文件)快速把服务器空间写满
有时我们需要测试服务器空间不足时程序的性能。这时你就需要手动对服务器创建大文件使其空间不足了。 我在百度之后发现了三个命令:truncate dd fallocate truncate命令: 它的作用是指定一个文件的大小,如果该文件不存在,就会创建该文件。如果指定文件的大小小于原先的大小,会丢失内容。 这个命令指定的文件大小其实是虚拟的。只是显示出来的大小。如果你指定一个非常大的文件。其实服务器剩余空间并不会减少。 用法:turncate -s 1G test.txt--创建一个虚拟大小1G的test文件,其真实大小为0 dd命令: 可以创建虚拟大小的文件,也可以创建真实占用空间的文件。 真实:dd if=/dev/zero of=test.txt count=10 bs=512M --创建一个5G大的test.txt文件 虚拟:dd if=/dev/zero of=test.txt count=10 bs=512M seek=10G --创建一个5G大的test.txt文件,但显示容量为10G 参数含义: if 输入文件 of 输出文件 count 创建的文件构成的块数 bs 每块的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G