rsync 远程同步

1)如图所示,搭建网络,配置地址


rsync_01.png

2)在1.10服务器上配置为服务端,修改rsync的配置文件/etc/rsyncd.conf,并启动rsync服务程序

// 以下所有都在Linux“服务端”配置

// 修改 /etc/rsyncd.conf 配置文件
$ vim /etc/rsyncd.conf
// 配置内容如下
 uid = nobody
 gid = nobody
 use chroot = yes
address = 192.168.1.10
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.1.0/24
[wwwroot]
        path = /var/www/html
        comment = shuo_ming
        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:123
或
$ echo backuper:123 > /etc/rsyncd_users.db

$ chmod 600 /etc/rsyncd_users.db

// 创建rsync源目录
$ mkdir -p /var/www/html



// 启动rsync 服务
$ rsync --daemon
//停止rsync服务
$ kill $(cat /var/run/rsyncd.pid)
// 查看rsync 服务
$ netstat -anpt | grep rsync

3)在1.20上使用rsync命令验证是否能够从服务端(/var/www/html)下载文件到客户机端(/myweb)

// 在“服务器”端创建文件 验证测试
$ cd /var/www/html
$ touch  1 2 3
$ ls


// Linux “客户机”配置
// 客户端 执行备份命令 验证
$ rsync -avz backuper@192.168.1.10::wwwroot /root
//验证 查看 root 目录
$ ls /root

// Linux “客户机”配置
// 客户端 执行备份命令 验证
$ mkdir /myweb
$ rsync -avz backuper@192.168.1.10::wwwroot /myweb
//验证 查看 /myweb 目录
$ ls /myweb

4)在1.20上实现每天晚上22:00对服务器的网站目录(/var/www/html)做一次同步

// Linux “客户机”配置
// 创建密码文件,方便后面操作
$ echo 123 > /etc/server.pass
$ chmod 600 /etc/server.pass 

// Linux “客户机”配置
// 创建周期性的计划任务(每天晚上十点,将服务器的配置wwwroot这个共享模块,备份到客户端的 /myweb 目录)
$ crontab -e
//添加以下内容
00 22 * * *     /usr/bin/rsync -avz --delete --password-file=/etc/server.pass backuper@192.168.1.10::wwwroot /myweb

5)在1.20上配置rsync+inotify实时同步。通过编写脚本来实现,客户机能够实时上传文件到服务端。
注意:需要在客户端安装inotify软件

// Linux “客户机”配置
// 调整 inotify 内核参数
$ vim /etc/sysctl.conf
// 添加
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576


// Linux “客户机”配置
// 查看
$ sysctl -p


// Linux “客户机”配置
// 安装 inotify-tools ,安装源码包
$ mount /dev/cdrom /media
$ tar zxf /media/inotify-tools-3.14.tar.gz -C /usr/src
$ cd /usr/src/inotify-tools-3.14
$ ./configure && make && make install
$ eject


// Linux “客户机”配置
// 触发式同步脚本
$ vim /opt/inotify_rsync.sh
// 添加
#!/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/ backuper@192.168.1.10::wwwroot"
$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
        $RSYNC_CMD
done

// Linux “客户端”配置
// 创建客户端备份 目录
$ mkdir -p /var/www/html


// Linux “服务器”配置
// 修改 /var/www/html 目录权限,使“other”有写入权
$ chmod 777 /var/www/html


// Linux “服务器”配置
// 配置服务端 允许客户端 上传(取消 只读 权限)
$ vim /etc/rsyncd.conf
// 修改 read only 这个配置项为 no
[wwwroot]
        path = /var/www/html
        comment = shuo_ming
        read only = no
        dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
        auth users  = backuper
        secrets file = /etc/rsyncd_users.db


// 测试
// 客户机:开两个终端
// 一个终端执行脚本
$ sh /opt/inotify_rsync.sh
// 一个终端在 /var/www/html 目录创建、删除文件测试
$ touch /var/www/html/test_01

// 实时同步 测试结果应为:
// Linux客户端在执行脚本的情况下,在 /var/www/html 目录创建的 test_01 文件
// 会立刻同步到 服务器端
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值