问题来源
做过Java开发的都知道,Java有着丰富的类库,你所想要的功能,几乎都有开源实现。但问题是,依赖库的递归依赖,使得编译出的文件非常庞大。再者,每次重新部署,其实都只做了“相当少”的代码更新。如果是在公网环境,情况会更加糟糕。。。
rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SSH、rsync主机同步。
解决方案
如上所述,既然每次都做了大量的无用功,能不能避免呢?当然可以,rsync就可以做到。本文以Spring Boot程序为例,对于静态文件、PHP、NodeJS等都适用。服务端使用CentOS7.2,客户端Windows10。
步骤
服务端安装
1 | yum install rsync -y |
修改配置文件vim /etc/rsyncd.conf
1 | #认证用户名和密码文件的名称和位置 |
生成密码文件
1 | echo "user1:123456" >> /etc/rsyncd.secrets |
添加防火墙例外
1 | firewall-cmd --zone=dmz --add-port=873/tcp --permanent |
启动服务
1 | systemctl start rsyncd |
编译脚本(build.bat)
1 | @echo off |
注意:客户端rsyncd.secrets文件内容为123456。