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应用端口来查找PID
netstat -anp |grep 8088
# 示例结果:tcp6 0 0 :::8088 :::* LISTEN 45160/java
45160就是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.jar
root 27045 1 0 Jan12 ? 00:12:40 java -jar -Duser.timezone=GMT+8 app2-1.0.jar
root 45115 42660 0 10:16 pts/0 00:00:00 grep --color=auto java -jar
root 45160 1 2 Jan16 ? 00:25:04 java -jar -Duser.timezone=GMT+8 app-0.0.1-SNAPSHOT.jar
# 3.Kill PID
kill -9 45160
# 4.重新启动
nohup java -jar -Duser.timezone=GMT+8 app-0.0.1-SNAPSHOT.jar &
注:其中 2>&1
的说明可参考 深入理解Linux shell中2>&1的含义(全网最全,看完就懂)。
二.端口
# 查看某个端口是否被某个应用占用,是否开放,需要root权限
lsof -i:80
# 查看当前 tcp,udp的端口和进程情况,可以与 grep连用,查看某个端口的使用情况
netstat -tunlp
netstat -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 start
service firewalld restart
service 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用户连接命令mysql
mysql -u root -p
# mysqldump导出某个库或表的结构与数据
mysqldump -u root -p databaseName > database.sql
mysqldump -u root -p databaseName tableName > table.sql
# source执行sql脚本,需要先登录,然后指定要执行的数据库
use databaseName;
source /home/sql/test.sql;
更多 mysql命令,参考菜鸟教程
后续继续补充 。。。。。。