最近做的项目需要把生成的静态页面同步到静态页面服务器上,采用rsync+inotify实现目
录实时同步当然就成了很好的方式了。
环境:ubuntu-9.01
生成静态页面的机器作为客户端采用上传的方式,地址为:192.168.18.12
静态页面服务器作为服务器端,地址为:192.168.18.14
同步目录为:/usr/ROOT
rysnc的下载地址为:http://rsync.samba.org/目前最新的版本为:3.0.7
inotify下载地址为:http://inotify-tools.sourceforge.net/最新版本为:3.13
服务器端安装:
tar -zxvf rsync-3.0.7.tar.gz
./configure --prefix=/usr/local/rsync --指定安装目录
make
make install
配置:1、vi /etc/rsyncd.conf
motd file=/etc/rsyncd.conf
read only=no ----因为是上传所以这里一定要可写
list=yes
uid=root
gid=root
hosts allow=192.168.18.12 ---允许连接ip
host deny=19.168.18.100
max connections=2 ----允许最大连接
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
模块
[web]
comment=from 192.168.18.12
path=/usr/ROOT
auth users=allen
secrets file=/etc/rsync.pass ----密码文件
2、vi /etc/rsyncd.motd
welcome to use rsync server!
3、vi /etc/rsync.pass
allen:123456
给密码文件赋权:chmod 400 /etc/rsync.pass
4、vi /etc/services
在最后加入:
rsync 873/tcp
rsync 873/udp
5、vi /etc/xinetd.d/rsync
service{
disable=no
socket_type=staream
wait=no
user=root
server=/usr/local/rsync/bin/rsync
server_args=--daemon
log_on_failure+=USERID
}
到这里配置完成,启动:/usr/local/rsync/bin/rsync --daemon
ps -aux | grep rsync 查看是否启动成功!
客户端安装:
tar -zxvf rsync-3.0.7.tar.gz
cd rsync-3.0.7
./configure --prefix=/usr/local/rsync --指定安装目录
make
make install
客户端只需安装,无需配置,建个密码文件
vi /etc/rsync-client.pass
123456
赋权:chmod 600 /etc/rsync-client.pass
rsync的上传和下载命令:
cd /usr/local/rsync/bin
下载命令:
./rsync -vzrtopg --progress --delete allen@192.168.18.14::web /usr/ROOT
上传命令:
./rsync -vzrtopg --progress --delete /usr/ROOT allen@192.168.18.14::web
在加上定时执行,就可以定时同步文件了。若需要实时同步则需要用inotify,安装之前需查看系统内核:uname -a
只能在高于2.6.13版本的系统上安装,以下的需要安装补丁。
inotify安装:inotify-tool-3.13
tar -zxvf inotify-tool-3.13
cd inotify-tool-3.13
./configure
make
make install
建个执行文件:rsync.sh
#!/bin/sh
src=/usr/ROOT
/usr/local/bin/inotifywait -mrq --timefmt '%d%m%y %H:%M' --format '%T%w%f' \
-e modify,delete,move,create,attrib \
${src}\
|while read file
do
rsync -vartopg --progress –delete –password-file=/etc/rsync-client.pass /usr/ROOT/ allen@192.168.18.14::web
echo "success!"
done
这样就能检测到是否有静态页面的生成或修改、删除而进行自动同步,实现实时同步。当然在此基础上你也可以在用linux命令再做一个比如10分钟一次定时同步任务,这样就更有保证了。
--------------------可能出现的错误解惑
1、@ERROR: Unknown module 'web'
rsync error: error starting client-server protocol (code 5) at main.c(1383) [receiver=2.6.9]
这是因为服务器端hosts allow 没有允许该主机访问
2、@ERROR: auth failed on module web
rsync error: error starting client-server protocol (code 5) at main.c(1383) [receiver=2.6.9]
检查一下用户名是否正确,
服务器端rysnc.pass(用户:密码)<用户必须是系统用户,密码尽量不要为系统用户密码>
客户端rsync-client.pass(密码)<服务器端密码>
注意:auth users=allen 这里不能有空格,上次这个问题把我找惨了。
3、@ERROR: secrets file must not be other-accessible
这是客户端的密码文件需要设置成600权限
chmod 600 rsync-client.pass
分享到:
相关推荐
rsync+inotify实现服务器之间文件实时同步 rsync+inotify是一种实现服务器之间文件实时同步的解决方案,该方案可以实时监控文件系统的变化,并将变化同步到备份服务器中,保障数据的一致性和实时性。 rsync是一种...
CentOS下用rsync+inotify实现实时同步 CentOS 7下用rsync+inotify实现实时同步可以实现文件之间的同步备份。下面是相关知识点的详细解释: 1. rsync简介 rsync是一种快速、可靠、安全的文件同步工具。它可以在...
### rsync+inotify 实现服务器之间目录文件实时同步 #### 软件简介与应用场景 **rsync** 是一种高效且广泛使用的文件同步工具,主要用于远程数据备份、镜像和迁移场景。相较于传统的 `cp` 和 `tar` 备份方式,...
使用 Rsync + inotify 实现实时远程同步 Rsync 是一个功能强大且广泛使用的文件同步工具,它可以快速、安全、可靠地同步文件。在服务器之间同步文件时,Rsync 是一个不二之选。Inotify 是一个 Linux 内核提供的文件...
将rsync与inotify结合使用,可以实现高效且实时的文件同步策略。例如,可以在一个目录上设置inotify监听,一旦有文件变动,就触发rsync进行同步。这样的组合在Web开发中特别有用,可以实现实时编译、部署静态资源,...
rsync+inotify开机自启动实时同步增量备份是通过使用rsync与inotify结合来实现Linux系统中文件的实时同步和增量备份。rsync是一个快速且灵活的文件传输工具,而inotify则是一个内核特性,它可以监控文件系统的变化。...
rsync+inotify实现远程文件时时同步,实现多台服务器的文件同步
rsync+inotify 实现数据的实时备份 一、rsync 简介 rsync 是一个远程数据同步工具,...rsync 是一个功能强大且灵活的文件同步工具,通过 rsync 和 inotify 的结合,可以实现数据的实时备份,提高数据安全和可用性。
`sersync`是一个基于`inotify`的文件同步工具,专为Linux设计,它能监听文件系统的变动并实时同步。与Rsync相比,sersync更专注于实时性和自动化,尤其适合监控大量小文件的变化。 1. **实时性**:sersync通过监听...
总的来说,rsync+inotify实时同步方案是一个强大且灵活的数据同步解决方案,尤其适合对实时性要求高的场景。通过熟练掌握这两个工具的使用,我们可以构建出高效、可靠的文件系统同步策略,提高工作效率并减少数据...
在 CentOS 6.3 环境中,配置文件系统实时同步更新,我们可以采用 rsync 结合 inotify 工具来实现。rsync 是一款强大的数据同步工具,它能够高效地进行本地或远程数据同步。而 inotify 是 Linux 内核提供的一种文件...
**rsync+inotify实现文件实时同步** 为了实现文件实时同步,我们需要在客户端安装inotify-tools,然后配置一个inotifywait命令,当检测到文件变化时,立即执行rsync同步命令。例如,可以创建一个bash脚本,内容如下...
本文档记录了使用 rsync 和 inotify 实现实时同步项目的详细笔记实战案例。rsync 是一个功能强大的文件同步工具,而 inotify 是一种 Linux 内核提供的文件系统事件侦听机制。通过将这两种技术结合使用,可以实现实时...
本文将详细介绍如何通过结合`Rsync`与`Inotify`这两种强大工具,在两台Linux服务器之间实现实时目录同步。 #### 二、Rsync简介 `Rsync`是一种用于文件传输的高效工具,它支持增量备份,即只传输两个文件差异的部分...
本文档将详细介绍如何利用rsync和inotify在Linux系统中实现文件的实时同步。 首先,rsync是一种基于Rsync算法的远程同步工具,能够高效地同步文件和目录,支持本地文件系统和远程文件系统之间的同步。它能够检测...