一、资源下载
wget https://github.com/rvoicilas/inotify-tools/archive/master.tar.gz
二、组件介绍
rsync
rsync是一个常用的文件同步工具,它可以通过网络或本地文件系统快速地同步文件和目录。rsync的特点是只传输两个目录之间不同的部分,这样可以大大降低传输数据的数量,提高同步的速度。rsync支持加密传输、压缩传输、增量备份等功能,是一个非常实用的工具。
inotify
inotify是Linux内核提供的一种文件系统事件监控机制,它可以监控文件系统的变化,例如文件的创建、修改、删除、移动等操作,当这些事件发生时,系统会向应用程序发送通知。使用inotify可以实现实时监控文件系统变化的功能,常用于文件同步、文件备份等场景。与rsync不同,inotify是被动的,只有在文件系统发生变化时才会触发事件,因此它常常需要与其他工具配合使用,例如rsync、shell脚本等。
三、编译安装
1.依赖准备
apt-get update && apt-get install -y libglib2.0-dev libtool libbz2-dev make git docbook-xsl asciidoc python3-glue libglib2.0-dev autoconf automake libtool-bin pkg-config docbook-style-xsl asciidoc
2.安装inotify-tools
tar -zxvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14 ./configure --prefix=/usr/local/inotify make && make install
3.配置文件整理
cp rsyncd.conf passwd.txt rsync.pass /etc/
cp rc.local inotify.sh exclude.list /etc/rsyncd/
cp rc-local.service /etc/systemd/system/
chmod 777 /etc/rsyncd/inotify.sh
chmod 777 /etc/rsyncd/exclude.list
chmod 600 /etc/passwd.txt
chmod 777 /etc/rsyncd.conf
chmod 777 /etc/rsyncd/inotify_auto.sh
chmod 777 /etc/systemd/system/inotify.service
4.服务启动问题
#自定义inotify自启脚本需要加载一下daemon才能设置开机自启。
systemctl daemon-reload
#开机启动rsync
systemctl start rsync
systemctl enable rsync
#inotify开机自启 备机不需要设置开机自启,且双机在运行的时候也不需要打开
systemctl start rc-local.service
systemctl enable rc-local.service
四、相关配置文件说明
1、rsync相关配置
①. rsyncd.conf (rsync的配置文件)
②. inotify.sh (inotify的驱动脚本,后面降inotify内置成service的时候需要它来执行同步逻辑)
③. exclude.list(同步的目录中,需要忽略的文件或者文件夹,每一行代表一条规则)
④. rsync.pass (本机的rsync账号密码 格式 账号:密码,可以有多组,每一行为一组)
⑤. passwd.txt (访问另一台机子的密码文件)
2.inotify相关
因为inotify是脚本驱动组件,但是这里需要它开机自启且可以完成实时监听,所以需要将其声明为一个service(即自定义一个service)。
①. inotify-service(注册服务)
②. inotify_auto.sh(启动inotify)