rsync+inotify同步备份

Posted tomtellyou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync+inotify同步备份相关的知识,希望对你有一定的参考价值。

1.rsync与scp区别

scp无法备份大量数据,先统计文件信息,后进行拷贝,如果文件大小超出磁盘空间,则无法拷贝
rsync边复制,边比较,边统计

2.rsync特点

(1.)支持增量备份
(2.)选择性的保持:符号链接,硬链接,文件属性,权限,时间
(3)传输前执行压缩,适用于异地备份,镜像服务器等应用。
(4.)使用ssh作为传输端口,sftp,ssh
(5.)rsync默认端口 873,是c/s架构,可以直接使用rsync命令,进行点到点的传输 。
(6.)官网:http://rsync.samba.org 推荐开源网站下载:https://sourceforge.net/

3.同步数据的方式

(1.)推:一台主机负责将数据传给其他主机,服务器开销大,适合后端服务器比较少
(2.)拉:所有知己定时去找一台主机拉数据,可能会导致数据同步缓慢。
一般做法:推拉结合,即主机A先将数据推送给主机B和主机C,然后其他主机D,E,F从B和C主机上拉取数据。

4.rsync安装

rpm -qf  `which rsync`
ls /etc/xinetd.d/rsync
rpm -ivh /mnt/Package/xinetd-2.3.14-33.el6.x86_64.rpm
开启rsync服务
vim /etc/xinetd.d/rsync
将disable改为no

rsync监听端口 TCP 873

5.rsync命令基本用法

格式:rsync [选项] 源文件 目标文件
rsync 选项 用户名@备份源服务器IP::共享模块名 目标目录

-a 归档
-p 保持原有文件权限
-t 保持原有文件时间
-g 保持原有文件的用户组
-o 保持原有文件的属主
-z 压缩传输
-P 显示传输进度
--delete 删除那些目标位置有而原始位置没有的文件

6.创建sync用户

useradd rget1
echo "123456" | password --stdin rget1

useradd rput1
echo "123456" | password --stdin rput1

设置权限
setfacl -R -m user:rput1:rwx  /var/www/html/
serfacl -R -m user:rget1:rwx  /var/www/html/
setfacl -R -m default:rget1:rwx /var/www/html/

getfacl /var/www/html/

7.同步文件

rsync -azP --delete [email protected]:/var/www/html/  /web-back/
注意:文件的权限要有拷贝的权限,如果没有加权限。

8.免密传输

ssh-keygen -t rsa   //一路回车
ssh-copy-id  [email protected]
ssh [email protected]  //测试登录

//实现无交互脚本
export RSYNC_PASSWORD=xxx
rsync -avz [email protected]::www/root  /web-back/

9.定期增量备份

crontab -e
0 1 3 * * * /root/rsync.sh    //写一个同步脚本,定时同步数据

10.配置rsync服务器

(1.)创建自己的配置文件
/etc/rsyncd.conf

  • 全局参数:对于rsync服务器生效,如果模块参数冲突,模块参数生效。
  • 模块参数:定义rsync输出的目录的参数

(2.)创建备份账户,以daemon的方式运行rsync

11.添加防火墙规则

iptables -A INPUT -p tcp --dport 873  -j ACCEPT
/etc/init.d/iptables  save

以上是关于rsync+inotify同步备份的主要内容,如果未能解决你的问题,请参考以下文章

Centos 配置rsync远程同步及使用inotify+rsync实时备份

rsync+inotify文件同步

rsync+inotify 备份

inotify介绍及rsync + inotify 实时同步备份

Rsync远程同步,实现下行 ,上行异地备份。配置rsync+inotify实时备份。

rsync(下行同步)与inotify(实时同步)