背景
目前的Linux统一开发服务器,目前,开发者通过CIFS或SAMBA远程挂载的方式使用.
但是,某异地接口带宽只有几十M,非常影响使用.
因此,这里给出第三种解决方案.
代码放在本地,通过同步指令同步服务器的代码,然后再在服务器那进行编译.
同步代码方法
最简单的就是采用rsync指令,它可以使用增量方式的同步,速度非常快
但是,windows没有rsync指令.
如何在windows安装rsync
安装cygwin, 并额外安装rsync和ssh
(在官网下载一个,这是个在线安装工具,在选择库的步骤,务必加入 rsync和ssh 网络应用。搜索栏输入ssh,选择最下方的Net里的openssh,让bin一列打上X号即可,rsync同理。
注意:在选择镜像源后的下载过程中,如果出现download incomplete, try again的错误,点击 否 即可继续,中间忽略其错误)
(另外,建议安装vim,方便以后编辑文本)
简单使用rsync示例
打开cygwin后,可以tab出rsync,用法和linux一样
举例:
rsync -av /cygdrive/e/xx_folder yanyongwen@
:/home/yanyongwen
这句话的意思是, 将E盘的xx_folder同步到服务器的我的home路径下, 即服务器多了/home/yanyongwen/xx_folder
-a 是archive的意思, -v是verbose的意思
如果xx_folder后面加/, 则不会包含xx_folder本身,即/home/yanyongwen/下会有很多xx_folder里的文件
如何不输入密码
上面的步骤,每次都要求你输入ssh的密码
可以采用ssh秘钥的方式实现免密码:
服务器加入你的ssh密钥:
1.执行 ssh-keygen.exe(一路回车即可)
2.ssh-copy-id yanyongwen@10.9.88.88
输入一次密码,以后都免密码了!
(以上yanyongwen改为自己的名字)
其他说明
rsync第一次会全部上传,以后就可以增量同步了
如果需要排除文件夹如根目录下的.svn, rsync加入–exclude=.svn即可
vi ~/.bashrc
将rsync变成方便自己使用的函数即可,例如.bashrc加入
function rsync_dev(){
rsync -av /cygdrive/ 1yanyongwen@10.9.88.88:/home/yanyongwen/ 2
}
以后就可以rsync_dev local_folder remote_folder同步了
如果需要将服务器生成的文件同步下来,只需要把上面rsync两边的地址反过来即可。