Ubuntu 14.04 LTS 实现双机文件同步lsync和rsync
2016-07-27 18:36
375 查看
转载声明:http://blog.csdn.net/sever2012/article/details/7531615
准备两台linux主机,操作系统为ubuntu10.04:
一台作为rsync的服务端,假设ip为192.85.1.9.
一台作为rsync的客户端,假设ip为192.85.1.112.
rsync能够实现文件从客户端指定目录传输到服务端指定目录,但不监控和实时功能.
lsync采用inotify原理监听某一目录,如果目录内发生增、删、改、利用rsync协议自动同步到多个服务器.inotify已并入ubuntu内核.
rsync和lsync都可通过系统软件包管理器安装,可以通过下载编译源文件安装:
rsync:http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
lsync:http://lsyncd.googlecode.com/files/lsyncd-1.26.tar.gz
服务端不用安装lsync.
打开/etc/rsyncd.conf文件(若没有则新建),输入以下内容:
[data]
path =/usr/lib/oracle/xe/data
uid =root
gid =root
address= 192.85.1.112
logformat= %t %a %m %f %b
syslogfacility = local3
说明:
[data]是路径别名,在配置客户端lsync时用于替代目标路径,即path,path是服务端存放同步文件的目录路径,可以按需要修改.
uid,gid是目标目录的所属者,如果不设则默认为-2(nobody).
address指定监听的ip,这个ip指客户端地址,端口默认为873.
logformat指定日志文件格式.
syslogfacility取决于rsync的启动方式,daemon方式则设为local3.
客户端rsync同样需要在/etc/下新建rsyncd.conf文件,但不用写入任何东西.
配置lsync配置文件lsyncd.conf.xml,文件地址可以用locate命令查找.
下面是设置好的文件内容:
<lsyncd version="1">
<settings>
<logfile filename="/var/log/lsyncd"/>
<binary filename="/usr/bin/rsync"/>
<callopts>
<option text="-avz"/>
<option text="--force"/>
<option text="-lt%r"/>
<option text="--delete"/>
<exclude-file/>
<source/>
<destination/>
</callopts>
</settings>
<directory>
<sourcepath="/home/ls/alipay_update/"/>
<targetpath="192.85.1.9::data"/>
</directory>
</lsyncd>
logfile指定 lsyncd的日志文件.
binary指定rsync程序路径.
Callopts标签下的子标签都是设置调用rsync时使用的参数,具体参数函数可以参考附录,%r会被替代成-r
directory指定目录,其中source子标签指定源文件目,该目录存放需要同步的文件;target标签指定rsync服务端地址和目标目录路径,data即服务端配置文件中[]的内容
系统默认的内容有很多类似<!--描述信息-->的行,表示注释信息或关闭的配置项.
服务端:
终端输入/usr/bin/rsync–-daemon –config=/etc/rsyncd.conf启动rsync.
服务启动后可用psauxf|grep 'rsync'查看进程,若出现类似以下信息则说明启动成功:
客户端:
终端输入/usr/bin/rsync--daemon启动rsync.
输入/usr/bin/lsyncd--conf/etc/lsyncd.conf.xml启动lsync.
再在可以在客户指定
可能出现的错误:
ERROR: chroot failed
rsyncerror: error starting client-server protocol (code 5) at main.c(1522)[receiver=3.0.3]
原因:服务器端的目录不存在或无权限,创建目录并修正权限可解决问题.
似乎没有直接关闭的方法,但能用psaux命令查出进程号,使用kill命令关闭进程
psaux:
kill2247
kill2281
rsync命令(部分)
-v,--verbose 详细模式输出
-q,--quiet 精简输出模式
-c,--checksum 打开校验开关,强制对文件传输进行校验
-a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r,--recursive 对子目录以递归模式处理
-R,--relative 使用相对路径信息
-b,--backup创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir将备份文件(如~filename)存放在在目录下。
-l,--links 保留软链结
-L,--copy-links 想对待常规文件一样处理软链结
--delete删除那些DST中SRC没有的文件
--force强制删除目录,即使不为空
--exclude=PATTERN指定排除不需要传输的文件模式
--include=PATTERN指定不排除而需要传输的文件模式
--exclude-from=FILE排除FILE中指定模式的文件
--include-from=FILE不排除FILE指定模式匹配的文件
--version打印版本信息
--address绑定到特定的地址
--config=FILE指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT指定其他的rsync服务端口
--blocking-io对远程shell使用阻塞IO
-stats给出某些文件的传输状态
--progress在传输时现实传输过程
--log-format=formAT指定日志文件格式
--password-file=FILE从FILE中得到密码
参考资料
http://blog.sina.com.cn/s/blog_6cf467320100m2sw.html
http://www.itlearner.com/article/4605
一.环境
准备两台linux主机,操作系统为ubuntu10.04:一台作为rsync的服务端,假设ip为192.85.1.9.
一台作为rsync的客户端,假设ip为192.85.1.112.
二.安装rsync和lsync
rsync能够实现文件从客户端指定目录传输到服务端指定目录,但不监控和实时功能.lsync采用inotify原理监听某一目录,如果目录内发生增、删、改、利用rsync协议自动同步到多个服务器.inotify已并入ubuntu内核.
rsync和lsync都可通过系统软件包管理器安装,可以通过下载编译源文件安装:
rsync:http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz
lsync:http://lsyncd.googlecode.com/files/lsyncd-1.26.tar.gz
系统软件包管理器默认安装两程序到/usr/bin目录下.
服务端不用安装lsync.
三.配置
1.服务端配置
打开/etc/rsyncd.conf文件(若没有则新建),输入以下内容:[data]
path =/usr/lib/oracle/xe/data
uid =root
gid =root
address= 192.85.1.112
logformat= %t %a %m %f %b
syslogfacility = local3
说明:
[data]是路径别名,在配置客户端lsync时用于替代目标路径,即path,path是服务端存放同步文件的目录路径,可以按需要修改.
uid,gid是目标目录的所属者,如果不设则默认为-2(nobody).
address指定监听的ip,这个ip指客户端地址,端口默认为873.
logformat指定日志文件格式.
syslogfacility取决于rsync的启动方式,daemon方式则设为local3.
2.客户端配置
客户端rsync同样需要在/etc/下新建rsyncd.conf文件,但不用写入任何东西.配置lsync配置文件lsyncd.conf.xml,文件地址可以用locate命令查找.
下面是设置好的文件内容:
<lsyncd version="1">
<settings>
<logfile filename="/var/log/lsyncd"/>
<binary filename="/usr/bin/rsync"/>
<callopts>
<option text="-avz"/>
<option text="--force"/>
<option text="-lt%r"/>
<option text="--delete"/>
<exclude-file/>
<source/>
<destination/>
</callopts>
</settings>
<directory>
<sourcepath="/home/ls/alipay_update/"/>
<targetpath="192.85.1.9::data"/>
</directory>
</lsyncd>
logfile指定 lsyncd的日志文件.
binary指定rsync程序路径.
Callopts标签下的子标签都是设置调用rsync时使用的参数,具体参数函数可以参考附录,%r会被替代成-r
directory指定目录,其中source子标签指定源文件目,该目录存放需要同步的文件;target标签指定rsync服务端地址和目标目录路径,data即服务端配置文件中[]的内容
系统默认的内容有很多类似<!--描述信息-->的行,表示注释信息或关闭的配置项.
四.启动服务
服务端:终端输入/usr/bin/rsync–-daemon –config=/etc/rsyncd.conf启动rsync.
服务启动后可用psauxf|grep 'rsync'查看进程,若出现类似以下信息则说明启动成功:
客户端:
终端输入/usr/bin/rsync--daemon启动rsync.
输入/usr/bin/lsyncd--conf/etc/lsyncd.conf.xml启动lsync.
再在可以在客户指定
可能出现的错误:
ERROR: chroot failed
rsyncerror: error starting client-server protocol (code 5) at main.c(1522)[receiver=3.0.3]
原因:服务器端的目录不存在或无权限,创建目录并修正权限可解决问题.
五.关闭服务
似乎没有直接关闭的方法,但能用psaux命令查出进程号,使用kill命令关闭进程psaux:
kill2247
kill2281
六.附件
rsync命令(部分)-v,--verbose 详细模式输出
-q,--quiet 精简输出模式
-c,--checksum 打开校验开关,强制对文件传输进行校验
-a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r,--recursive 对子目录以递归模式处理
-R,--relative 使用相对路径信息
-b,--backup创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir将备份文件(如~filename)存放在在目录下。
-l,--links 保留软链结
-L,--copy-links 想对待常规文件一样处理软链结
--delete删除那些DST中SRC没有的文件
--force强制删除目录,即使不为空
--exclude=PATTERN指定排除不需要传输的文件模式
--include=PATTERN指定不排除而需要传输的文件模式
--exclude-from=FILE排除FILE中指定模式的文件
--include-from=FILE不排除FILE指定模式匹配的文件
--version打印版本信息
--address绑定到特定的地址
--config=FILE指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT指定其他的rsync服务端口
--blocking-io对远程shell使用阻塞IO
-stats给出某些文件的传输状态
--progress在传输时现实传输过程
--log-format=formAT指定日志文件格式
--password-file=FILE从FILE中得到密码
参考资料
http://blog.sina.com.cn/s/blog_6cf467320100m2sw.html
http://www.itlearner.com/article/4605
相关文章推荐
- Java同步队列(非阻塞队列与阻塞队列)——java并发容器
- 渐渐明白习以为常的珍贵
- POJ1830 开关问题【 高斯消元】
- Java数组的几种常用操作方法(排序算法及查找)
- 【RabbitMQ 参考资料】
- Codeforces Round #301 (Div. 2) D. Bad Luck Island(概率DP)
- python 画图--饼图
- Codeforces Round #340 (Div. 2) C. Watering Flowers(暴力枚举)
- 冒泡排序
- 模块度Q——复杂网络社区划分评价标准
- 基于libfiber的高并发服务优化策略
- 手势识别
- Leetcode题集——jump-game
- ios Cookies
- matlab作图如何改变坐标刻度
- 2016.07.16【初中部 NOIP提高组 】模拟赛C
- Libevent源码分析-----多线程、锁、条件变量(一)
- mysql性能优化-慢查询分析、优化索引和配置
- 第三章--不得不学的Fragment
- Linux日志定时清理