Centos 配置rsync远程同步及使用inotify+rsync实时备份
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,博文目录一、rsync概述1、rsync命令的基本用法二、配置rsync1、配置同步身份验证的rsync2、rsync定期同步3、配置inotify+rsync实时同步一、rsync概述rsync(R
千家信息网最后更新 2025年01月31日Centos 配置rsync远程同步及使用inotify+rsync实时备份
博文目录
一、rsync概述
1、rsync命令的基本用法
二、配置rsync
1、配置同步身份验证的rsync
2、rsync定期同步
3、配置inotify+rsync实时同步
一、rsync概述
rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。rsync的官方站点是http://rsync.samba.org/ 作为一种常用的文件备份工具,rsync往往是Linux和UNIX系统默认安装的基本组件之一。
[root@centos01 ~]# rpm -q rsyncrsync-3.0.9-18.el7.x86_64
在远程同步任务中,负责发起rsync同步 操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文档的原始位置,发起端应对该位置具有读取权限。rsync作为同步源时以守护进程运行,为其他客户机提供备份源。配置rsync同步源需要建立配置文件rsync.conf,创建备份账号,然后将rsync程序以守护进程("--daemon"选项)方式运行。
1、rsync命令的基本用法
绝大多数的备份程序要求指定原始位置、目标位置,rsync命令也一样。最简单的rsync用法类似于cp命令。例如,可以将文件/etc/fstab、目录/boot/grub同步备份到/opt目录下,其中,"-r"选项表示递归整个目录树,"-l"选项用来备份链接文件。
备份的基本格式为"rsync [选项] 原始位置 目标位置",其中常用的一些命令选项如下:
- -r:递归模式,包含目录及子目录中的所有文件;
- -l:对于符号链接文件仍然复制为符号链接文件;
- -v:显示同步过程的详细信息;
- -a:归档模式,保留文件的权限、属性等信息,等同于组合选项"-rlptgoD";
- -z:在传输文件时进行压缩;
- -p:保留文件的权限标记;
- -t:保留文件的时间标记;
- -g:保留文件的属组标记(仅超级用户使用);
- -o:保留文件的属主标记(仅超级用户使用);
- -H:保留硬连接文件;
- -A:保留ACL属性信息;
- -D:保留设备文件及其他特殊文件;
- --delete:删除目标位置有而原始位置没有的文件;
- --checksum:根据校验和(而不是文件大小、修改时间)来决定是否跳过文件;
二、配置rsync
[root@centos01 ~]# cp /etc/rsyncd.conf /etc/rsyncd.conf.bak [root@centos01 ~]# vim /etc/rsyncd.conf uid = nobody gid = nobody port 873 pid file = /var/run/rsyncd.pid dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 auth users = bob secrest file = /etc/rsync_user.db address = 192.168.100.10 hosts allow = 192.168.100.0/24 read only = yes [root@centos01 ~]# rsync --daemon [root@centos01 ~]# netstat -anptu | grep rsync tcp 0 0 192.168.100.10:873 0.0.0.0:* LISTEN 1422/rsync [root@centos01 ~]# kill 1422 [root@centos01 ~]# vim /etc/rc.d/rc.local /usr/bin/rsync --daemon [root@centos01 ~]# chmod +x /etc/rc.d/rc.local [root@centos01 ~]# mkdir centos7 [root@centos01 ~]# rsync -alv /mnt/* ./centos7/ [root@centos01 ~]# mkdir benet [root@centos01 ~]# mkdir xsh [root@centos01 ~]# echo "11111" > ./benet/1.txt [root@centos01 ~]# echo "22222" > ./xsh/2.txt [root@centos01 ~]# rsync -av --delete ./benet/ ./xsh sending incremental file list./deleting 2.txt1.txtsent 92 bytes received 34 bytes 252.00 bytes/sectotal size is 6 speedup is 0.05[root@centos01 ~]# cd xsh [root@centos01 xsh]# ls 1.txt[root@centos01 ~]# rsync -av ./xsh/ root@192.168.100.20:/ The authenticity of host '192.168.100.20 (192.168.100.20)' can't be established.ECDSA key fingerprint is SHA256:PUueT9fU9QbsyNB5NC5hbSXzaWxxQavBxXmfoknXl4I.ECDSA key fingerprint is MD5:6d:f7:95:0e:51:1a:d8:9e:7b:b6:3f:58:51:51:4b:3b.Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.100.20' (ECDSA) to the list of known hosts.root@192.168.100.20's password: sending incremental file list./1.txtsent 92 bytes received 34 bytes 19.38 bytes/sectotal size is 6 speedup is 0.05[root@centos02 ~]# cd / [root@centos02 /]# ls 1.txt boot etc lib media opt root sbin sys usrbin dev home lib64 mnt proc run srv tmp var
1、配置同步身份验证的rsync
[root@centos01 ~]# vim /etc/rsync_user.db bob:pwd@123[root@centos01 ~]# chmod 600 /etc/rsync_user.db [root@centos01 ~]# vim /etc/rsyncd.conf [accp] path = /accp comment = test auth users bob secrets file = /etc/rsync_user.db read only = yes [root@centos01 ~]# mkdir /accp [root@centos01 ~]# echo "accp.com" > /accp/qq.txt [root@centos01 ~]# rsync -av bob@192.168.100.10::accp ./xsh/ receiving incremental file list ./aa.txtsent 48 bytes received 118 bytes 332.00 bytes/sectotal size is 4 speedup is 0.02[root@centos01 ~]# rsync -av rsync://bob@192.168.100.10/accp ./xsh/ receiving incremental file list./aa.txtsent 48 bytes received 118 bytes 332.00 bytes/sectotal size is 4 speedup is 0.02[root@centos01 ~]# cd xsh/ [root@centos01 xsh]# lsaa.txt
2、rsync定期同步
[root@centos01 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 写保护,将以只读方式挂载[root@centos01 ~]# tar zxvf /mnt/inotify-tools-3.14.tar.gz -C /usr/src/ [root@centos01 ~]# cd /usr/src/inotify-tools-3.14/ [root@centos01 inotify-tools-3.14]# ./configure [root@centos01 inotify-tools-3.14]# make && make install [root@centos01 ~]# cat /proc/sys/fs/inotify/max_queued_events 16384[root@centos01 ~]# cat /proc/sys/fs/inotify/max_user_instances 128[root@centos01 ~]# cat /proc/sys/fs/inotify/max_user_watches 8192[root@centos01 ~]# vim /etc/sysctl.conf fs.inotify.max_queued_events = 16384fs.inotify.max_user_instances = 1024fs.inotify.max_user_watches = 1048576[root@centos01 ~]# sysctl -p fs.inotify.max_queued_events = 16384fs.inotify.max_user_instances = 1024fs.inotify.max_user_watches = 1048576[root@centos01 ~]# inotifywait -mrq -e modify,create,delete,move,attrib /accp/ [root@centos01 ~]# cd /accp/ [root@centos01 accp]# lsaa.txt[root@centos01 accp]# touch 11.txt [root@centos01 accp]# echo "111" > 1.txt [root@centos01 accp]# rm -rf 11.txt[root@centos01 ~]# inotifywait -mrq -e modify,create,delete,move,attrib /accp/ /accp/ CREATE 11.txt/accp/ ATTRIB 11.txt/accp/ CREATE 1.txt/accp/ MODIFY 1.txt/accp/ DELETE 11.txt
3、配置inotify+rsync实时同步
[root@centos01 ~]# vim rsync.sh #!/bin/bashINW="inotifywait -mrq -e modify,create,delete,move,attrib /accp/"RSYNC="rsync -avzH /accp/ root@192.168.100.20:/baidu/ --delete"$INW | while read DIRECTORY EVENT FILE;do$RSYNC &> /dev/nulldone[root@centos01 ~]# chmod +x rsync.sh [root@centos01 ~]# ssh-keygen -t rsa [root@centos01 ~]# ssh-copy-id -i ./.ssh/id_rsa.pub root@192.168.100.20 [root@centos01 ~]# netstat -anptu | grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 7657tcp6 0 0 :::873 :::* LISTEN 765[root@centos01 ~]# kill 7657 [root@centos01 ~]# rsync --daemon [root@centos02 ~]# mkdir baidu [root@centos02 ~]# cd baidu/ [root@centos02 baidu]# echo "111" > 333.txt [root@centos02 baidu]# ls 333.txt[root@centos01 ~]# ./rsync.sh & [3] 11160[root@centos02 ~]# cd /baidu/ [root@centos02 baidu]# lsw.txt[root@centos01 ~]# vim /etc/rc.d/rc.local /root/rsync.sh & [root@centos02 ~]# kill 7984 [root@centos02 ~]# rsync --daemon
同步
文件
备份
配置
位置
目录
命令
原始
权限
标记
链接
信息
客户
客户机
目标
实时
备份工具
属性
工具
常用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
iphone激活服务器暂时不可用
德州服务器管理系统商家
游戏软件开发主要做什么
互联网科技的生活习惯
软件开发公司收入确认
局域网服务器开发
计算机网络技术考二建
软件开发项目技术要求书
眼镜行业软件开发的发展趋势
党政机关网络安全检查
游戏服务器后台是啥
深圳巴阿特网络技术有限公司
传统网络安全扫盲
区块链是比特币的数据库
atm机软件开发 招聘
元数据管理服务器
电脑连接数据库出现的问题
鞍山网络技术有限公司
魔兽世界 刀片服务器
东莞市民传授网络安全
vb保存信息的数据库
caxa配置数据源及创建数据库
更改数据库的表空间的名字
乡镇网络安全教育信息
软件开发技术好做吗
ism无线网络技术
网络安全见闻谈作文
市场监管局网络安全管理制度
服务器环境设置
民生银行软件开发中心年工资总额