前言
最近写了一个微服务项目,本地调试很麻烦,每次修改一部分都得把代码提交到仓库,再用Jenkins编译。整个流程感觉有点慢,想着改完代码执行一个脚本,直接编译并且将jar包发布到测试环境上。幸运的是win10已经支持ssh和scp命令了,所以我可以用scp命令来实现我的想法了,无图无真相
ssh登陆Linux一般有两种形式 1.用户名和密码(每次登陆都需要输入密码) 2.用户名公钥
使用ssh和scp命令的前提是你本地的公钥配置在服务器上的authorized_keys文件中,过程如下。
创建SSH Key
在windows下查看【c盘->用户->自己的用户名->.ssh】下是否有id_rsa、id_rsa.pub文件,如果没有需要手动生成
代码语言:javascript复制ssh-keygen -t rsa -C "youremail@xx.com"
-t 指定密钥类型,默认即 rsa ,可以省略
-C 设置注释文字,比如你的邮箱,可以省略
接着一路回车,如果想设置密码,自己可以设置一下,如果成功的话【c盘>用户>自己的用户名>.ssh】目录已经生成好了,里面包括id_rsa(私钥)、id_rsa.pub(公钥)
把公钥追加在Linux服务器上的~/.ssh/authorized_keys的文件中即可通过公钥登陆
SSH
命令格式如下,可以不指定端口,默认为22
代码语言:javascript复制ssh -p <端口> <用户名>@<IP地址>
SCP
命令格式如下,可以不指定端口,默认为22
代码语言:javascript复制scp -P <端口> <filename> <用户名>@<IP地址>:<目标目录>
我直接写了一个bat脚本,每次改完代码执行脚本,编译打包发布一气呵成,scp命令传输文件很快。
deploy.bat
代码语言:javascript复制call gradle build -x test
cd ./build/libs
scp demo.jar username@ip:/opt/application/
cd ../../
@pause
gradle build -x test 这是gradle打包命令,你可以类比为maven的mvn clean package -DskipTests=true