1.rsync使用概述
介绍:一款快速增量备份工具,支持远程同步 支持本地复制 或者与其他SSH主机同步
软件作用:数据备份
软件安装:yum -y install rsync
优点:
第一次同步是会复制全部内容,但下次只传输修改过的文件。支持增量备份。
选择性的保持:符号链接,硬链接,文件属性,权限及时间等
传输前执行压缩:适用于异地备份,镜像服务器等应用。
rsync命令的基本用法:
格式:rsync 选项 源文件 目标文件
常见选项:
-a --archive(存档) 归档模式表示以递归的方式传输文件,并保持文件属性
-r --recursive 对子目录以递归的形式处理
-l --links 表示拷贝链接文件
-p --perms 表示保持文件原有权限
-t --times 表示保持文件原有时间
-g --group 表示保持文件原有用户组
-o --owner 表示保持文件原有属主
-D --devices 表示块设备文件信息
-z --表示压缩传输
-H 表示硬链接文件
-A 保留ACL属性信息
-P 显示传输进度
--delete 删除那些目标位置有而原始位置没有的文件
实战:将服务器A上的/boot 备份至服务器B(192.168.2.45)上的/root/boot_bak
注:请使用yum进行安装rsync
命令:rsync -azP --delete /root/boot/ root@192.168.2.45:/root/boot_bak
可通过配置ssh主机互信进行免密传输:
可通过配置主机互信进行免密传输:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id root@192.168.2.45
2.inotify介绍
下载:https://sourceforge.net/projects/inotify-tools/
安装:
1.需要安装gcc包:yum -y install gcc
2.tar -xvf inotify-tools-3.13.tar.gz
3.cd /root/inotify-tools-3.13
4../configure && make && make install
5.检验安装是否成功:inotifywait -h 查看输出情况
inotifywait 常用参数:
-e 用来指定要监控哪些事件
这些时间包括:create 创建;move 移动;delete 删除;modify 修改文件内容;attrib 属性修改。
-m 表示持续监控
-r 表示递归整个目录
-q 表示简化输出信息
使用示例:inotifywait -mrq -e create,move,delete,modify /var/www/html/
3.使用rsync+inotify打造实时备份
1.脚本示例
#!/bin/bash
#The Author is by xxxx
#This Script is use rsync+inotify backup file
#使用此脚本需在主机安装rsync+intify、备机安装rsync、并配置主机互信
#定义变量
srcDir="/root/boot/"
destDir="/root/boot_bak/"
destIp="192.168.2.45"
destUser="root"
#执行命令
inotifywait -mrq -e create,move,delete,modify $srcDir | while read a b c
do
rsync -azP --delete $srcDir $destUser@$destIp:$destDir
done
2.开机自启动
编辑:/etc/rc.d/rc.local
最后一行添加:bash + /root/rsync-inotify.sh > /dev/null 2>&1 &
注:centos7环境下,/etc/rc.d/rc.local文件的权限被降低了,需要添加执行权限:chmod +x /etc/rc.d/rc.local
至此,rsync+inotify打造实时同步完毕。