步骤如下:
1.用idea打包好jar包
建议按照图示1,2,3进行,打包好的jar一般比较大,如果发现jar比较小,很可能不正确。这时检查pom.xml中的maven-plugin配置,打包好的jar包在对应工程的target中
2.将jar包上传到linux服务器上,工具很多,方法也有很多,不会请找度娘,此处以mac命令scp为例
打开终端(idea中的Terminal,其他工具item2也可以)输入如下指令
指令格式:
scp jar包全路径 root@公网ip:目标文件路径
示例:
scp /Users/IdeaProjects/my-project/test-project/test-api/target/test-api.jar root@120.20.221.170:/opt/test/
补充知识:
1.从服务器下载文件或文件夹到本地(其他机器)
注意:在本地机器上打开终端!!!!
data文件夹是新建到,可以保存到其他任意位置
1)下载文件 scp root@120.20.221.170:/opt/test/log.txt /data/log.txt
2)下载文件夹 scp -r root@120.20.221.170:/opt/test /data/test
3)下载文件或文件夹到另一台服务器
scp root@120.20.221.170:/opt/test/log.txt root@120.20.221.171:/opt/log.txt
下载文件夹 加一个参数 -r
特别注意:目标文件路径如果含有不存在的文件夹会报错,提前进入linux创建好文件夹
用ssh工具连接服务器,使用mkdir 命令创建文件夹
指令格式:
mkdir 文件夹名
示例:
1.在当前路径下创建test-file的文件夹
mkdir test-file
2.在指定/opt下创建test文件夹
mkdir /opt/test
补充:
创建文件
touch 文件名
示例:
touch job.log
第2步指令输入完成回车后,提示输入密码,输入后并回车,会有上传进度条
3. 进入linux刚上传完成jar所在到目录(cd /opt/test),不进入目录也可以,但是需要输入jar包所在的全路径
nohup java -jar test-api.jar --spring.profiles.active=prd --server.port=8080 >/opt/logs/xxx-logs.txt &
注意:上述指令&不要忘记了
回车可能会提示“忽略输入重定向错误到标准输出端”类似错误,解决方法如下
执行nohup java -jar test-api.jar & 运行jar会提示:nohup: 忽略输入并把输出追加到"nohup.out"
执行nohup java -jar test-api.jar >/dev/null & 运行jar会提示:nohup: 忽略输入重定向错误到标准输出端
修改运行方式为nohup java -jar test-api.jar >/dev/null 2>&1 &即可。
至此已经完成部署jar包
补充可能用到的linux命令:
1. ps 查询进程
通常使用ps -ef查看,启动参数会一起显示,【推荐】
2.可通过jobs命令查看后台运行任务
jobs
3.结束进程
kill -9 pid号
示例:
kill -9 12303
4.查看某个端口占用pid
指令格式:
netstat -nlp |grep :端口号
示例:
netstat -nlp |grep :8080
结果
5.更改文件、文件夹属性
Linux文件属性有两种设置方法,一种是数字,一种是符号。
数字方式修改:r=>4,w=>2,x=>1,-=>0 (rwx=4+2+1=7)
文件的9个权限字符计算:例r-xrwx---> 4+0+1,4+2+1,0 ==> 570
chmod [-R] xyz 文件或目录 例:chmod –R 777 /var/log.txt
示例:
chmod u+x file 给file的属主增加执行权限
chmod 751 file 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmod u=rwx,g=rx,o=x file 上例的另一种形式 (u=rwx,g=rx,o=x中间不能有空格)
chmod =r file 为所有用户分配读权限
chmod 444 file 同上例
chmod a-wx,a+r 同上例
chmod -R u+r 目录名称 递归地给目录下所有文件和子目录的属主分配读的权限