1、rsync服务说明

配置文件: /etc/rsyncd.conf
默认端口:tpc 837
启动服务:rsync --daemon
停止服务:kill  $(cat /var/run/rsyncd.pid)
查看端口:netstat  -anpt |  grep rsync
重启端口须先停止端口再启动端口

 

2、配置rsync源服务器

         (1)服务器上建立/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                                    (存放进程ID的文件位置)
hosts allow = 192.168.1.0/24                                      (允许访问的客户机地址)
 [wwwroot]                                                        (共享模块名称)
 path = /var/www/html                                             (源目录的实际路径)                               
 comment = Document Root of 11111111                              (备注)
 read only = yes                                                  (是否为只读)  
 dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2     (同步时不再压缩的文件类型)
 auth users = backuper                                            (授权账户)
 secrets file = /etc/rsyncd_users.db                              (存放账户信息的数据文件)

        

        (2)为备份账户创建数据文件 

mkdir -p /var/www/html/    (此目录下的是要备份的文件)

touch /var/www/html/1.txt

vim /etc/rsyncd_users.db
(添加账户密码)

backuper:123                       (用户为backuper,密码为123)

chmod 600 /etc/rsyncd_users.db     (配置只读权限)

ls -ld /var/www/html/              (查看权限)

        (3)启动rsync服务程序 

rsync --daemon                (启动rsync)

netstat -anpt | grep rsync    (查看rsync端口)

 3、使用rsync备份工具

        (1)配置源的表示方式
客户端下载到root目录下

rsync -avz backuper@192.168.1.10::wwwroot /root
输入backuper密码

 客户端下载到myweb目录下

mkdir /myweb    (创建目录)
rsync -avzH --delete backuper@192.168.1.10::wwwroot /myweb
输入backuper密码

        (2) 自动rsync备份

vim /etc/server.pass              (保存backuper密码)
(添加密码)
123

chmod 600 /etc/server.pass        (添加权限)

crontab -e

(添加)
30 22 * * * /usr/bin/rsync -az --delete --password-file=/etc/server.pass backuper@192.168.1.10::wwwroot /myweb        (每天晚上10点半自动备份,备份文件在myweb)

 4、inotify+rsync实时同步

 inotify通知接口,可以监控文件系统的各种变化。(在客户端上安装,只能上行)
        (1)调整inotify内核参数

vim /etc/sysctl.conf

    (添加)
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches =1048579


sysctl -p

        (2) 安装inotify-toosl,需要先插入光盘,

tar zxf inotify-tools-3.14.tar.gz -C /usr/src/

cd /usr/src/inotify-tools-3.14/

./configure && make && make install

        (3)测试监控目录

mkdir -p /var/www/html

inotifywait  -mrq  -e  modify,create,move,delete /var/www/html/  (不能强行停止)

新建终端 在/var/www/html 新建文件,返回原终端查看,

         

        (4)编写触发式同步脚本

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



chmod +x /opt/inotify_rsync.sh 

echo '/opt/inotify_rsync.sh'  >> /etc/rc.local

        (5)服务器上配置

vim   /etc/rsyncd.conf
将 read  only = yes  改为
read only  =no                          (设置上传文件的权限,有写入的权限)



chmod  777  /var/www/html               (修改目录本身的权限)


kill  $(cat  /var/run/rsyncd.pid)
rsync  --daemon                         (停止服务和启动服务)

        (6)执行脚本进行测试

/opt/inotify_rsync.sh  (客户端执行脚本)

在/var/www/html/创建文件

ls /var/www/html/     (查看服务器上查看是否上行文件)

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐