linux下通过rsync同步数据
2010-12-15 17:02
281 查看
好久没来写点东西了,最近做一项目时有一功能是后台创建模块然后预览效果,涉及到的问题就是两套不同的程序,两台不同的主机(当然也可以是一台主机)数据同步问题,说白了就是将后台创建的模块文件推送到前台相应目录下。
解决办法就用到了linux的shell命令rsync,说实话测试了好多次才成功,所以现在以文字的形式来记录,自己备忘也希望可以帮助正在做这种功能而无从下手的同学。
环境:两台linux主机。我使用的192.168.84.130(服务端),192.168.84.134(客户端)
使用命令:/user/bin/rsync
一般现在的linux都自带rsync命令,如果没有请自行安装。(http://rsync.samba.org/)
服务器端也就是192.168.84.130需要配置/etc/rsyncd.conf,一般这个文件是没有的,需要手动创建,编辑内容:
#
# Version: 1.0
# Maintainer :wangzhanu@163.com <Network System Dept.>
#
# Rsync daemon configuration file.
#
######公共定义#############
uid = wangzhan #目录的创建者
gid = wangzhan #目录所属的组
use chroot = no
max connections = 100
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync
list = no #不允许列文件
strict modes = no
######定义自己需要的模块##############
[publish_zt] #认证的模块名,在client端需要指定
uid = wangzhan #目录的创建者
gid = wangzhan #目录所属的组
path = /data1/www #需要做镜像的目录,比如客户端传文件到服务器端,就会进到这个目录
use chroot = no
read only = no
list = yes
hosts allow = 192.168.84.134 #允许的ip地址域,就是客户端要连接服务器,必须在此把客户端ip写到此处
保存退出,配置文件定义ok。
然后启动rsync
root@ubuntu:/data1/www#rsync --daemon --config=/etc/rsyncd.conf
接下来就是在服务器端创建镜像保存目录,也就是rsyncd.conf中定义的path目录:/data1/www
这里有一个关键点就是www目录的拥有者以及组必须是:chown wangzhan:wangzhan /data1/www
你问我为什么?因为在rsyncd.conf中的[publish_zt]模块中已经定义了uid和gid就是wangzhan。
服务器端的工作完成了,现在就是客户端了。
1.客户端推送文件到服务器端
===========================
wangzhan@ubuntu:/data1/www$ /usr/bin/rsync -rut --exclude=/.* /data1/www/xx.php 192.168.84.130::publish_zt/guoqing/
就是将客户端/data1/www中的xx.php文件推送到服务器端/data1/www/guoqing/xx.php,用到程序当中的话,xx.php是
可以变化的,guoqing这个文件夹也可以使变化的,也就是说在程序当中改动他们就可以实现推送不同的文件到服务器端。
2.从服务器端下载文件到客户端
===========================
wangzhan@ubuntu:/data1/www$ /usr/bin/rsync -ave ssh wangzhan@192.168.84.130:/data1/www/ /data1/www/
就是将服务器端/data1/www/目录下的文件下载到客户端/data1/www/目录中
文到此处结束,请各位同学自行测试,如发现问题请不吝赐教!
解决办法就用到了linux的shell命令rsync,说实话测试了好多次才成功,所以现在以文字的形式来记录,自己备忘也希望可以帮助正在做这种功能而无从下手的同学。
环境:两台linux主机。我使用的192.168.84.130(服务端),192.168.84.134(客户端)
使用命令:/user/bin/rsync
一般现在的linux都自带rsync命令,如果没有请自行安装。(http://rsync.samba.org/)
服务器端也就是192.168.84.130需要配置/etc/rsyncd.conf,一般这个文件是没有的,需要手动创建,编辑内容:
#
# Version: 1.0
# Maintainer :wangzhanu@163.com <Network System Dept.>
#
# Rsync daemon configuration file.
#
######公共定义#############
uid = wangzhan #目录的创建者
gid = wangzhan #目录所属的组
use chroot = no
max connections = 100
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync
list = no #不允许列文件
strict modes = no
######定义自己需要的模块##############
[publish_zt] #认证的模块名,在client端需要指定
uid = wangzhan #目录的创建者
gid = wangzhan #目录所属的组
path = /data1/www #需要做镜像的目录,比如客户端传文件到服务器端,就会进到这个目录
use chroot = no
read only = no
list = yes
hosts allow = 192.168.84.134 #允许的ip地址域,就是客户端要连接服务器,必须在此把客户端ip写到此处
保存退出,配置文件定义ok。
然后启动rsync
root@ubuntu:/data1/www#rsync --daemon --config=/etc/rsyncd.conf
接下来就是在服务器端创建镜像保存目录,也就是rsyncd.conf中定义的path目录:/data1/www
这里有一个关键点就是www目录的拥有者以及组必须是:chown wangzhan:wangzhan /data1/www
你问我为什么?因为在rsyncd.conf中的[publish_zt]模块中已经定义了uid和gid就是wangzhan。
服务器端的工作完成了,现在就是客户端了。
1.客户端推送文件到服务器端
===========================
wangzhan@ubuntu:/data1/www$ /usr/bin/rsync -rut --exclude=/.* /data1/www/xx.php 192.168.84.130::publish_zt/guoqing/
就是将客户端/data1/www中的xx.php文件推送到服务器端/data1/www/guoqing/xx.php,用到程序当中的话,xx.php是
可以变化的,guoqing这个文件夹也可以使变化的,也就是说在程序当中改动他们就可以实现推送不同的文件到服务器端。
2.从服务器端下载文件到客户端
===========================
wangzhan@ubuntu:/data1/www$ /usr/bin/rsync -ave ssh wangzhan@192.168.84.130:/data1/www/ /data1/www/
就是将服务器端/data1/www/目录下的文件下载到客户端/data1/www/目录中
文到此处结束,请各位同学自行测试,如发现问题请不吝赐教!
相关文章推荐
- Linux下rsync远程数据同步命令的详细介绍
- Linux下配置rsync 同步数据
- 多学一点(十四)——服务器间通过rsync和inotify-tools动态同步数据
- 通过rsync客户端来同步数据
- Linux下Rsync+Inotify-tools实现数据实时同步
- Linux下配置rsync同步备份数据
- linux inotify+rsync+ssh数据时时同步 推荐
- rsync 实现文件同步 (重要数据通过rsyncr把数据同步到不同的两台服务器上,这样可以防止服务器的硬盘故障导致数据丢失) 客户端同步时如果要排某个目录
- linux系统安装rsync和sersync实现数据实时同步详细步骤(rsync实时同步)
- 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 scre
- Linux下rsync的安装与配置远程服务器数据同步
- rsync实现linux与windows数据同步
- linux安装rsync服务同步数据
- 通过rsync+inotify实现数据的实时同步
- 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具
- Linux下Rsync+sersync实现数据实时同步
- linux使用rsync同步数据
- linux系统下使用rsync实现网站数据实时同步备份
- Linux学习第三十四篇:rsync通过服务同步,Linux系统日志,screen工具