最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

每日快播:JavaWeb开发中在服务器常用命令集锦

来源:博客园


【资料图】

基本的 ls mv midir就不说了。

一. 后端部署

1.1 启动jar包

# 默认会将所有日志存放到一个当前目录中新建的 nohup.out文件中nohup java -jar -Duser.timezone=GMT+8 app-0.0.1-SNAPSHOT.jar &

另一种写法:

# 将标准错误输出和标准输出都定向到 test.log文件中,其中nohup java -jar -Duser.timezone=GMT+8 app-0.0.1-SNAPSHOT.jar > test.log 2>&1 &

1.2 更新Jar包

首先找到 目前启动的jar包的PID,并kill掉

# 1.根据Java应用端口来查找PIDnetstat -anp |grep 8088# 示例结果:tcp6       0      0 :::8088                 :::*                    LISTEN      45160/java45160就是PID# 2.更为普遍的方式是根据 "java -jar" 的关键词来搜索目前后台运行程序的启动命令ps -ef | grep "java -jar"# 示例结果:root      8167     1  0  2022 ?        02:11:03 java -jar -Duser.timezone=GMT+8 gateway-1.0-SNAPSHOT.jarroot     27045     1  0 Jan12 ?        00:12:40 java -jar -Duser.timezone=GMT+8 app2-1.0.jarroot     45115 42660  0 10:16 pts/0    00:00:00 grep --color=auto java -jarroot     45160     1  2 Jan16 ?        00:25:04 java -jar -Duser.timezone=GMT+8 app-0.0.1-SNAPSHOT.jar# 3.Kill PIDkill -9 45160# 4.重新启动nohup java -jar -Duser.timezone=GMT+8 app-0.0.1-SNAPSHOT.jar &

注:其中 2>&1的说明可参考 深入理解Linux shell中2>&1的含义(全网最全,看完就懂)。

为了方便也可以用一个更新 jar包 的shell脚本文件 deploy.sh来集成这些命令,下面的仅供参考

#!/bin/bash# 脚本需要放到与jar包同一层目录下# 1.校验参数if [ -z $1 ]; thenecho "you must input old jar package name"exit 0if [ -z $2 ]; thenecho "you must input new jar package name"exit 0echo "publish----------"# 2.查找目前运行的老jar包运行的进程号process_id=`ps -ef | grep $1 | grep -v grep |awk "{print $2}"`if [ $process_id ] ; then# 3.杀死老进程sudo kill -9 $process_idfisource /etc/profile# 4.运行新jar包,按照自己习惯写# nohup java -jar -Dspring.profiles.active=prod ~/wiki/wiki.jar >  2>&1 &nohup java -jar -Duser.timezone=GMT+8 ./$2 > test.log 2>$1 &echo "end publish"tail -fn 100 test.log

这个脚本运行需要两个参数,一个是 之前的jar包的名称,另一个是新jar包的名称,保存的日志文件名称是 test.log。运行如下:

sh deploy.sh oldJarPackage newJarPackage

二.端口

# 查看某个端口是否被某个应用占用,是否开放,需要root权限lsof -i:80# 查看当前 tcp,udp的端口和进程情况,可以与 grep连用,查看某个端口的使用情况netstat -tunlpnetstat -tunlp | grep 8080

三.防火墙(适用于 CentOS7+)

参考linux(Centos7)查看配置防火墙状态firewall、iptable。

## 1.查看 firewall服务状态 active为启动,inactive为停止systemctl status firewalld# 结果如下● firewalld.service - firewalld - dynamic firewall daemon   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)   Active: active (running) since Thu 2022-12-08 15:14:08 CST; 1 months 9 days ago   ......## 2.查看 firewall状态firewall-cmd --state# 结果running## 3.开启,重启,关闭防火墙service firewalld startservice firewalld restartservice firewalld stop## 4.查看防火墙放开的端口firewall-cmd --list-ports 或 firewall-cmd --list-all## 5.查询某个端口是否开放firewall-cmd --query-port=8080/tcp# 6.永久开放8080端口,没有 --permanent重启会失效firewall-cmd --zone=public --add-port=8080/tcp --permanent# 7.永久移除8080端口firewall-cmd --zone=public --remove-port=8080/tcp --permanent # 8.重启防火墙(以上放开/移除端口的修改配置后要重启防火墙才能生效)firewall-cmd --reload

四.Nginx

# 找到命令所在的路径whereis nginx# nginx: /usr/local/nginx /usr/local/nginx/sbin/nginx# 运行命令在/usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx # 检查配置文件格式是否正确nginx -t # 重启nginx -s reload# 指定某个特定的配置文件nginx -c test.conf 启动# 停止nginx nginx -s stop

五. mysql

# 以root用户连接命令mysqlmysql -u root -p# 导出某个库或表的结构与数据mysqldump -u root -p databaseName > database.sqlmysqldump -u root -p databaseName tableName > table.sql

后续继续补充 。。。。。。

关键词: 配置文件 运行程序 是否正确