在将Java项目部署到服务器上后,为了简化操作和提高效率,我们可以借助一个命令脚本来快速启动、停止和查看项目。这样可以避免反复执行繁琐的命令,提高开发效率。
直接上脚本
#!/bin/sh
port=8899 #定义变量等号左右不能有空格
jar_name=/home/project/PG/testPg.jar
log_path=/home/project/PG/log/`date +%y%m%d`_testPg.log
#运行脚本提示信息
tips(){
echo "-------------------------------------"
echo ""
echo "项目端口: ${port}"
echo "项目地址: ${jar_name}"
echo ""
echo "你可以使用如下参数进行操作"
echo "-status -查看当前项目运行状态"
echo "-start -启动当前项目"
echo "-stop -停止当前项目"
echo "-restart -重启当前项目"
echo ""
echo "-------------------------------------"
}
#查看状态
status(){
#查询端口的PID {print $7}-取出打印的第七个值
pid=`netstat -apn |grep $port |awk '{print $7}' |cut -d/ -f 1`
#判断端口是否被占用
if [ -z "${pid}" ];then
echo "没有项目在运行"
else
echo "项目正在运行中"
fi
}
#启动项目
start(){
pid=`netstat -apn |grep $port |awk '{print $7}' |cut -d/ -f 1`
if [ -z "${pid}" ];then
echo "正在启动......"
nohup nohup java -jar /home/project/PG/testPg.jar > $log_path 2>&1 &
else
echo "项目运行中或端口已被占用"
fi
}
#停止项目
stop(){
pid=`netstat -apn |grep $port |awk '{print $7}' |cut -d/ -f 1`
if [ -z "${pid}" ];then
echo "没有项目在运行,请先启动"
else
kill -9 $pid
echo "已杀死端口为 ${port} 的应用"
fi
}
#重启项目
restart(){
pid=`netstat -apn |grep $port |awk '{print $7}' |cut -d/ -f 1`
echo "正在杀死端口 ${port} 的pid ${pid} 中..."
if [ -z "${pid}" ];then
echo "项目未启动"
else
kill -9 $pid
fi
sleep 5 #睡眠五秒
start #调用启动方法
echo "项目重启成功!"
}
#参数选项
case "$1" in
"-status")
status
;;
"-start")
start
;;
"-stop")
stop
;;
"-restart")
restart
;;
*)
tips
;;
esac
将上述命令脚本保存为`.sh`后缀文件,放置在与`jar`包同级目录,并赋予可执行权限,然后通过运行脚本来启动项目。
简单好用。
部署发布常用命令:
1. 查看当前端口占用:
netstat -anp | grep 8899
使用`netstat`命令查看当前端口的占用情况,过滤出指定端口(例如8899)的监听进程。
2. 启动项目:
java -jar -Dserver.port=8899 module-admin.jar
使用`java -jar`命令启动Java项目,通过`-Dserver.port`参数指定端口号(例如8899)。
3. 查看日志(最新100行):
tail ccc.log -n 100
使用`tail`命令查看指定日志文件(例如ccc.log)的最新100行数据。
4. 备份文件:
- 备份后台jar文件:
cp -r /home/project/test/module-admin.jar /home/project/test/back/20230713module-admin.jar
使用`cp`命令将后台jar文件复制到指定的备份文件夹路径,以日期作为备份文件名。
- 备份前台页面:
cp -r /home/project/test/adminUI /home/project/test/back/20230713adminUI
使用`cp`命令将前台页面复制到指定的备份文件夹路径,以日期作为备份文件夹名。
5. 还原备份:
- 还原后台文件:
cp -r /home/project/test/back/202307130module-admin.jar /home/project/test/module-admin.jar
使用`cp`命令将指定的后台备份文件覆盖当前文件。
- 还原前台页面:
cp -r /home/project/test/back/20230713adminUI /home/project/test/adminUI
使用`cp`命令将指定的前台备份文件夹覆盖当前文件夹。