阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

实现inotify配合rsync实时备份

200次阅读
没有评论

共计 2862 个字符,预计需要花费 8 分钟才能阅读完成。

实现 inotify 配合 rsync 实时备份

(一):服务端的守护进程模式和客户端的 rsync 配置

1. 配置服务端 rysnc
    vi /etc/rsyncd.conf 里的内容
uid = rsync     
gid = rsync     
use chroot = no     
max connections = 200     
timeout = 100     
pid file = /var/run/rsyncd.pid     
lock file = /var/run/rsync.lock     
log file  = /var/log/rsyncd.log     
[backup]     
path = /backup/     
ignore errors     
read only = false     
list =  false     
hosts allow = 199.101.117.0/24     
hosts deny = 0.0.0.0/32     
auth users = rsync_backup     
secrets file = /etc/rsync.password

## 如果在 windows 下编辑或者复制的编码到 linux 下就最好用这个命令处理下 Dos2unix /etc/rsyncd.conf
[root@testvpn backup]#mkdir /backup
[root@testvpn backup]#useradd rsync -s /bin/nologin –M                           

## 新建个账户(和配置文件的 uid-gid 对应,此账户属性不能登录并且没目录)
[root@testvpn backup]#chown -R rsync.rsync /oldboy                               

[root@testvpn backup]#echo“rsync_backup:oldboy”> /etc/rsync.password 

##rsync_backup 是虚拟账户,到时候客户端连接就用这个账户和密码 oldboy。
[root@testvpn backup]#chmod 600 /etc/rsyncd.password                                  ### 设置成别人都不能看到,因为里面有密码
[root@testvpn backup]#rsync –daemon 

# 启动进程

 

 

 

2. 到客户端配置:只要这两步即可
[root@twstaiton2 ~]#echo“oldboy”>/etc/rsync.password                       

# 这个路径和服务端路径没任何关系,为了规范而已,密码必须和服务那相同
[root@twstaiton2 ~]#chmod 600 /etc/rsync.password

 

 

 

 

(二):客户端的 inotify 部署

[root@twstaiton2 ~]#wget  http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
[root@twstaiton2 ~]# ll /proc/sys/fs/inotify/
total 0
-rw-r–r– 1 root root 0 Jan 21 00:34 max_queued_events
-rw-r–r– 1 root root 0 Jan 21 00:34 max_user_instances
-rw-r–r– 1 root root 0 Jan 21 00:34 max_user_watches
#### 检查命令;能看到这三个说明支持 inotify, 执行下面命令(可批量复制执行)
[root@twstaiton2 ~]#tar zxf inotify-tools-3.14.tar.gz
[root@twstaiton2 ~]#cd inotify-tools-3.14
[root@twstaiton2 ~]#./configure –prefix=/usr/local/inotify-tools-3.14
[root@twstaiton2 ~]#make && make install
[root@twstaiton2 ~]#ln -s /usr/local/inotify-tools-3.14 /usr/local/inotify
##vps 需装 make gcc gcc++,/usr/local/inotify/bin/inotifywait –help 里有众多参数,但只需记得 create 和 delete 参数,用于侦听事件来触发 inotify

编写一个脚本 inotify 如下:
[root@twstaiton2 ~]#vi realtime.sh

#!/bin/bash
host01=199.101.117.34
src=/backup
dst=backup
user=rsync_backup
rsync_passfile=/etc/rsync.password
inotify_home=/usr/local/inotify

if [! -e “$src”] \
|| [! -e “${rsync_passfile}” ] \
|| [! -e “${inotify_home}/bin/inotifywait” ] \
|| [! -e “/usr/bin/rsync”];
then
echo “Check File and Folder”
exit 0
fi

${inotify_home}/bin/inotifywait -mrq –timefmt ‘%d%m%y %H:%M’ –format ‘%T %w%f’ -e close_write,delete,create,attrib $src \
| while read file
  do
    cd $src && rsync -aruz -R –delete ./ –timeout=100 $user@$host01::$dst –password-file=${rsync_passfile} >/dev/null 2>&1
    done
exit 0
## 以上是脚本内容
[root@twstaiton2 ~]#nohup ./realtime.sh &  #启动后台监听脚本
在 /backup 目录下测试 touch {1..100}, 在服务端的 /backup 马上会同步这 100 个文件,成功!
如果不成功需要手动一个个命令检查,有关 rsync 的服务端配置,详见 Rsync 的简单应用与配置这篇文章

Rsync 的详细介绍:请点这里
Rsync 的下载地址:请点这里

推荐阅读:

利用 inotifywait 监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm

利用 inotify+rsync 实现 Linux 文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm

inotify-tools+rsync 实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm

rsync 同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2862字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中