rsync+inotify实现文件夹实时同步
2016-03-08 17:24
267 查看
最近需要使用到文件夹实时同步的功能,参照网页上的相关文章,实现了相应的功能,在这里记录下,以便后面有需要时能再找回来。
一、rsync和inotify的安装
rsync-3.0.9.tar.gz下载地址:http://download.csdn.net/detail/haimingwei_haimian/9455659
inotify-tools-3.14.tar.gz下载地址:
rsync和inotify的安装都比较简单,基本都是下面的三个步骤:
./configure --prefix=指定的安装目录
make
make install
安装完成后,再分别配置服务端和客户端的配置文件。
二、客户端配置文件rsync.conf
[lutong] 认证模块的名称,此名称可自由定义,只要保证客户端与服务端的一致即可。
path 客户端需要进行同步的文件夹的绝对路径。
host allow 服务端的主机IP地址
auth users 用户名,这里的用户名并不是系统的用户
secrets file 密码文件,实现同步而定义的一个密钥文件
三、服务端启动文件rsync.sh
host 客户端服务器的IP地址。
des 客户端配置的认证模块名称,必须与客户端设置的值一致。
user 用户名
四、用户名和密码文件rsync.passwd
客户端rsync.passwd内容如下:
lutong:lt2016
格式:用户名:密码
服务端rsync.passwd内容如下:
lt2016
服务端的内容只需要有密码就可以了
在上面的配置文件中有这么一个文件
根据实际情况,把这个路径改为实际的rsync.passwd文件所在的路径即可,密码文件还需要设置文件权限为600:
chmod 600 rsync.passwd
五、启动客户端和服务端
首先要客户端的rsync,启动命令如下:
/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync.conf
然后再启动服务端的rsync.sh,启动命令如下:
sh /xx/xx/rsync.sh &
到此如果没有什么意外情况的话,基本就可以实现文件夹实时同步了。
参照文章:http://www.jb51.net/article/57011.htm
一、rsync和inotify的安装
rsync-3.0.9.tar.gz下载地址:http://download.csdn.net/detail/haimingwei_haimian/9455659
inotify-tools-3.14.tar.gz下载地址:
rsync和inotify的安装都比较简单,基本都是下面的三个步骤:
./configure --prefix=指定的安装目录
make
make install
安装完成后,再分别配置服务端和客户端的配置文件。
二、客户端配置文件rsync.conf
uid=root gid=root use chroot=no max connections=10 strict modes=yes pid file=/var/run/rsyncd.pid lock file=/var/run/rsync.lock log file=/var/log/rsyncd.log [lutong] path=/home/support/server/tomcat-client/webapps/resources/ comment=lutong ignore errors read only=no write only=no hosts allow=xxx.xxx.xxx.xxx hosts deny=* list=false uid=root gid=root auth users=lutong secrets file=/usr/local/rsync/rsync.passwd主要的几个参数如下:
[lutong] 认证模块的名称,此名称可自由定义,只要保证客户端与服务端的一致即可。
path 客户端需要进行同步的文件夹的绝对路径。
host allow 服务端的主机IP地址
auth users 用户名,这里的用户名并不是系统的用户
secrets file 密码文件,实现同步而定义的一个密钥文件
三、服务端启动文件rsync.sh
#!/bin/bash host=<span style="font-family: Arial, Helvetica, sans-serif;">xxx.xxx.xxx.xxx</span> src=/home/support/tomcat-server/webapps/resources des=lutong user=lutong /usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \ | while read files do /usr/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des echo "${files} was rsynced" >>/opt/rsync.log 2>&1 done主要的几个参数如下:
host 客户端服务器的IP地址。
des 客户端配置的认证模块名称,必须与客户端设置的值一致。
user 用户名
四、用户名和密码文件rsync.passwd
客户端rsync.passwd内容如下:
lutong:lt2016
格式:用户名:密码
服务端rsync.passwd内容如下:
lt2016
服务端的内容只需要有密码就可以了
在上面的配置文件中有这么一个文件
<span style="white-space:pre"> </span>/usr/local/rsync/rsync.passwd
根据实际情况,把这个路径改为实际的rsync.passwd文件所在的路径即可,密码文件还需要设置文件权限为600:
chmod 600 rsync.passwd
五、启动客户端和服务端
首先要客户端的rsync,启动命令如下:
/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync.conf
然后再启动服务端的rsync.sh,启动命令如下:
sh /xx/xx/rsync.sh &
到此如果没有什么意外情况的话,基本就可以实现文件夹实时同步了。
参照文章:http://www.jb51.net/article/57011.htm
相关文章推荐
- CF 345 div2 A和B
- 文件锁 flock及fcntl flock
- kinetis时钟模块MCG详解
- 虚拟手机的创建步骤
- MySQL-常见数据拆分办法
- 转载:C#中的多态
- 重写NSLog,Debug模式下打印日志和当前行数
- Apache服务器中.htaccess文件的实用配置示例集锦
- 每次输出日志前需要判断日志的级别吗?
- js DOM节点的创建、插入、删除、查找、替换方法学习与总结
- POJ1080 Human Gene Functions
- android Matrix图片手势放大缩小,拖动
- swift的一些基本属性7 (数组)
- Android的classloader
- 细说KVO & KVC & NSNotificationCenter那些事
- T Fiddler 教程 _转
- thinkjs crud练习
- Linux安装ElasticSearch-2.2.0
- 用jquery写循环播放div的相关笔记 珍贵的总结 -1
- 恢复旋转排序数组