什么是rsync?
sync官方网站: https://www.samba.org/ftp/rsync/rsync.html
rsync是可以实现增量备份的工具。配合任务计划,rsync能实现定时或间隔同步,配合inotify或sersync,可以实现触发式的实时同步。
rsync工作方式:
rsync有三种工作方式:
(1).本地文件系统上实现同步。命令行语法格式为上述"Local"段的格式。
(2).本地主机使用远程shell和远程主机通信。命令行语法格式为上述"Access via remote shell"段的格式。
(3).本地主机通过网络套接字连接远程主机上的rsync daemon。命令行语法格式为上述"Access via rsync daemon"段的格式。
前两者的本质是通过管道通信,即使是远程shell。而方式(3)则是让远程主机上运行rsync服务,使其监听在一个端口上,等待客户端的连接。
由上面可以知道:rsync可以本地,远程同步文件。可以定时,或者时间间隔但是不能实时!
详情参考网址:https://www.cnblogs.com/f-ck-need-u/p/7220009.html#auto_id_1
什么是inotity?
Inotify API用于检测文件系统变化的机制。Inotify可用于检测单个文件,也可以检测整个目录。当检测的对象是一个目录的时候,目录本身和目录里的内容都会成为检测的对象。
此种机制的出现的目的是当内核空间发生某种事件之后,可以立即通知到用户空间。方便用户做出具体的操作。
由上可知道:inotiy用于监听文件夹变化
inotity详情参考:https://blog.csdn.net/longwang155069/article/details/54016789
那么由rsync+inotity 就可以做到实时去同步文件了
rsync的安装:
yum -y install rsync
service rsyncd start
配置文件相关:
省略!! 每一台服务器上面都有安装这个
inotity的安装:
linux命令:
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure&&make&&make install
安装过程如果报一下错误:
configure: error: in `/tmp/inotify-tools-3.14':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
则需要安装: yum install gcc
--安装完后,就会产生下面两个命令 /usr/local/bin/inotifywait /usr/local/bin/inotifywatch
安装完毕后:
创建脚本
#!/bin/bash
/usr/local/bin/inotifywait -mrq -e modify,delete,create,attrib,move /srv/tydata|while read files
do
rsync -av --delete --exclude '*.pdf' --exclude '*.html' --exclude '*.docx' --exclude '*.doc' /srv/tydata/upload/ /srv/www/static/upload/ty
done
修改权限
#chmod 0755 /tmp/1.sh
启动脚本
# nohup sh /tmp/1.sh &
光标会停止并闪烁再敲击一次回车,会在/test/目录 下生成nohup.out文件
下面对这个进行验证即可!
// exclude 表示不同步某一类文件
注意运行脚本的地方要在你要同步文件夹的 目录下哦
还有如果要修改脚本,必须先杀掉之前运行的脚本然后再运行修改后的脚本。否则不会生效!