vkill'blog

“技术本身没有太多价值,掌握了新的思考方式才是真的收获”

windows 到 linux 的数据同步

19:34 , vkill
先说下我的需求,因工作环境是win,固都是在win上写scripts 然后在linux虚拟机 里执行
那么就有个问题了,我怎么传送win上的 scripts 到 linux 上去那?
我常用的方法有如下2个,下面就来分析下下面两个的优缺点

方法1:使用 xftp ,因为一直使用 xshell 来ssh到linux虚拟机的,所以xftp这个工具就很顺手的点开上传文件了。这个不好的就是你第一次上传的 scripts 没有x权限,还得去chmod ,但是当你chmod 过后,再xftp上传新文件的话权限是不会改变的,所以也就第一次麻烦些。还有就是你上传新文件的时候是不会去 fc 老文件的,有时候就是重复上传

方法2:使用 rsync ,使用这个的前提是 win 上安装 cwRsyncServer_4.0.4(http://sourceforge.net/projects/sereds/files/cwRsync/4.0.4/) 当服务端,linux 上用 rsync 当客户端。
具体方法如下:
1、修改 cwRsyncServer 安装目录下 /etc/fstab 文件,加入如下所示一行,意思就是把 D:/test/vhostMGR/scripts 挂载到当前 cygwin 环境的 /scripts 目录
Quotation

#add in /etc/fstab
D:/test/vhostMGR/scripts /scripts ntfs override,binary,noacl 0 0

2、修改 cwRsyncServer 安装目录下 rsyncd.conf 如下,注意,这里如果不设置 uid=0 和 gid=0 的话 会提示 invalid uid nobody 这样的错误
Quotation

#modify rsyncd.conf
uid = 0
gid = 0
use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]
path = /scripts
read only = yes
transfer logging = yes

3、重启 cwRsync 服务
4、linux 上执行下面命令,192.168.9.101为win的ip

[root@vkill ~]# mkdir /root/scripts
[root@vkill ~]# rsync -av 192.168.9.101::test /root/scripts/


好了,这样就ok了
那这个方法的好处是什么那?
首先 rsync 传送前是先 fc 旧文件的,这个不用说了吧
其次 照这样 rsync 过来后的 scripts 会根据 *.rb 中的 #!/usr/bin/env ruby 这个头来确定是不是scripts,如果是 scripts 那么就会自动加上x 权限的,这个才是最重要的,呵呵

Last modified by vkill on2010/06/02 18:20
类别:linux system | Tags: , , , , , , , , | 0 条评论, 1282 次阅读
网友评论(0):
发表评论:

Nickname: 
Email:
Site URI: