rsync远程同步

rsync是一个快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,还可以搭配其他软件实现实时同步。rsync的配置其实很简单,这里还会介绍一些基本用法和搭配inotify软件实时同步

配置rsync源服务器

yum -y install rsync

一般linux各种distribution中已经默认安装好的

1.手动建立/etc/rsyncd.conf 配置文件

vim /etc/rsyncd.conf

uid = nobody
gid = nobody
use chroot = yes                               //禁锢在源目录
address = *.*.*.*                              //监听地址
port  873                                      //监听端口
pid file = /var/run/rsyncd.pid                 //pid文件位置
log file = /var/log/rsyncd.log                 //日志文件位置
hosts allow = 192.168.1.0/24                   //允许访问的客户机地址
[www]                                          //共享模块名称
    comment = lalalalalala                     //描述
    path = /var/www/html                       //源目录的实际路径
    read only = yes                            //是否为只读
    dont compress = *.gz  *.bz2  *.tgz  *.zip  *.rar  *.z    //同步时不再压缩的文件类型
    auth users = backuper                                    //授权账户
    secrets file = /etc/rsyncd_users.db                      //存放账户信息的数据文件

最后两行如果不加,则为匿名登陆同步

2.创建用户数据文件

vim /etc/rsyncd_users.db
user:pwd123                               //rsyncd_users.db文件里的用户数据,一行一个用户

chmod 600 /etc/rsyncd_users.db

用户需要对源目录/var/www/html有相应的权限,只要other组有读取权限即可

3.启动rsync服务

rsync –daemon
如要关闭,可以采用kill $(cat /var/run/rsyncd.pid) 关闭

使用rsync备份工具

1.命令格式及常用备份选项

-r:递归模式,包含目录及子目录中的所有文件
-l:对于符号链接文件仍然复制为符号链接文件
-v:verbose
-a:归档模式,保留文件的权限、属性等信息(相当于all)
-z:在传输文件时进行压缩
-p:保留文件的权限标记
-t:保留文件的事件标记
-g:保留文件的属组标记(仅超级用户使用)
-o:保留文件的属主标记(仅超级用户使用)
-H:保留硬链接文件
-A:保留ACL属性信息
-D:保留设备文件及其他特殊文件
--delete:删除目标位置有,而原始位置没有的文件
--checksum:根据校验和来决定是否跳过文件

2.配置源的表示方法

rsync -avz user@192.168.1.1::www /root 或者
rsync -avz rsync://user@192.168.1.1/www /root

配置rsync+inotify实时同步

inotify是linux内核从2.6.13版本以后提供的通知接口

1.调整inotify内核参数

cat /proc/sys/fs/inotify/max_queued_events
16384                             //监控事件队列

cat /proc/sys/fs/inotify/max_user_instances
128                               //最多监控实例数

cat /proc/sys/fs/inotify/max_user_watches
8192                              //每个实例最多监控文件数

根据监控的目录文件数量不同,调整三个调控参数

2.安装inotify-tools
这个软件提供了用于监控的辅助工具程序,如inotifywait、inotifywatch

tar xzf inotify-tools-*.tar.gz -C /usr/src
cd /usr/src/inotify-tools-*
./configure
make && make insatll

监控实例:

inotifywait -mrq -e modify,create,move,delete /var/www/html

以上是以监控/var/www/html为例,在另外一个终端下做添加文件等动作。
-e:用来指定要监控哪些事件
-m:表示持续监控
-r:表示递归整个目录
-q:简化输出信息

3.再根据编写脚本来实现同步

#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e modify,create,move,delete /var/www/html
"
RSYNC_CMD="rsync -azH --delete --password-file=/etc/server.pass /var/www/html rput@192.168.1.1::共享模块名"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if[ $(pgrep rsync | wc -l ) -le 0 ] ; then
        $RSYNC_CMD
    fi
done

为实现无人值守,需要创建一个密码文件,如脚本中的/etc/server.pass,保存用户的密码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值