加载中…
个人资料
鳉鲈
鳉鲈
  • 博客等级:
  • 博客积分:0
  • 博客访问:25,196
  • 关注人气:6
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Linux下文件实时自动同步备份(rsync+inotify)

(2020-07-31 14:59:20)

yum -y install rsync

vim /etc/rsyncd.conf

 

uid = nobody

gid = nobody

use chroot = yes

max connections = 10

strict mode=yes

pid file = /var/run/rsyncd.pid

lock file=/var/run/rsync.lock

log file=/var/log/rsyncd.log

[backup]

        path = /backup129/

        comment = backup file

        ignore errrors

        read only=no

        write only=no

        hosts allow=192.168.157.129

        hosts deny=*

        list=false

        uid=root

        gid=root

        auth users=yxc

        secrets file=/etc/rsync.password

 

echo "yxc:123456" > /etc/rsync.password

chmod 600 /etc/rsync.password

启动 rsync 守护进程

/usr/local/bin/rsync --daemon

启动之后可查看 rsync 进程,如下

ps -ef | grep rsync

如有需要可加入系统自启动文件

echo "/usr/local/bin/rsync --daemon" >> /etc/rc.local

rsync 默认端口为873,所以开放873端口

firewall-cmd --add-port=873/tcp --permanent --zone=public

#重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload

安装rsync

# 解压

tar zxvf rsync-3.1.3.tar.gz

cd rsync-3.1.3/

# 配置

./configure

# 编译及安装

make && make install

配置rsync

vim /etc/rsync.password

#需要给密码文件600权限

chmod 600 /etc/rsync.password

启动 rsync 守护进程

 

/usr/local/bin/rsync --daemon

 

echo "/usr/local/bin/rsync --daemon" >> /etc/rc.local

 

firewall-cmd --add-port=873/tcp --permanent --zone=public

#重启防火墙(修改配置后要重启防火墙)

firewall-cmd --reload

 

部署inotify

 

1)下载安装

inofity-tools下载地址:http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

inotify-tools 的详细介绍可以看:https://github.com/rvoicilas/inotify-tools/wiki

 

下载完成后,进行解压安装,如下:

 

# 解压

tar zxvf inotify-tools-3.14.tar.gz

cd inotify-tools-3.14/

# 配置

./configure

# 编译及安装

make && make install

 

2)创建rsync同步的shell脚本

 

安装完成之后需要创建用于 rsync 同步的 shell 脚本,如果添加、修改、删除了文件或文件夹,inotify 可以监控到,然后通过 rsync 进行同步,这里我们就在需要进行监控的目录创建这个脚本

 

vim /root/data/backuptest/inotifyrsync.sh

 

#!/bin/bash

host1=192.168.157.130

src=/root/data/backuptest/

dst1=backup

user1=yxc

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src \

| while read files

do

        /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/rsync.password $src $user1@$host1::$dst1 > /dev/null 2>&1

        echo "${files} was rsynced." >> /tmp/rsync.log 2>&1

done

 

其中 host client ipsrc server 端要实时监控的目录,des 是认证的模块名,需要与 client 一致,user 是建立密码文件里的认证用户。

 

然后给这个脚本赋予权限

 

chmod 755 /root/data/backuptest/inotifyrsync.sh

 

后台运行这个脚本

 

/root/data/backuptest/inotifyrsync.sh &

 

有需要可以将脚本加入系统自启动文件中

 

echo "/root/data/backuptest/inotifyrsync.sh &" >> /etc/rc.local

 

 

 

转载自:https://blog.csdn.net/xch_yang/article/details/104941081

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有