无论是面试还是工作,掌握linux常用命令,对于开发者而言,是必不可少的,简单说一下,部署项目时常用的一些linux的基础命令。
1.通过项目端口,找到项目部署的路径:
1)根据端口过滤,找到项目进程号:
netstat -ntlp | grep 30080
2)假设找到进程号为10021:
ps -ef | grep 10021 =>能获得到部署项目的位置。
3)如何快速找到项目部署的目录位置,通过find 来模糊查找:
find /home -name xxx.jar
2.在没有jenkins自动化部署的时候,需要手动替换jar,war包(war包需要tomcat容器启动):
1)创建当前日期的备份目录:
mkdir jar_bak/20220421
2)复制jar包:
cp xxx.jar /jar_bak/20220421
3)查看当前进程pid:
ps -ef | grep $PWD
4)关闭当前进程号,如1005:
kill -9 1005
5)删出原有包:
rm -rf xxx.jar
6)上传包,若设置权限,先修改权限再启动:
chgrp web xxx.jar chown web xxx.jar
7)指定不同环境的配置文件和端口,并启动:
java -jar -Dspring.profiles.active=196 -Dserver.port=33038 /home/xxx/xxx/xxx.jar
或者编写脚本,每次都执行脚本:
#./bin/bash
if [ ! -z "$(ps -ef|grep xxx.jar |grep java)" ] ; then
ps -ef |grep xxx.jar |grep java| awk '{print $2 }' |xargs kill -9
fi
date=`date +%Y%m%d-%H%M%S`
echo $date
java -jar -Ddate=$date -Dspring.profiles.active=196 -Dserver.port=33038 /home/aaa/bbb/xxx.jar > /home/aaa/bbb/log.file 2>&1 &
8)启动成功,查看日志(实时监控500条):
tail -500f log.file
3.说一下查询日志的骚操作:
tail是尾部查找,head是头部查找,-n 代表显示行数。
①从第100行起,所有的日志:
tail -n +100 log.file
②查询日志文件中的头10行日志:
head -n 10 log.file
③查询日志中含有某个关键字的信息,显示出行号:
cat -n log.file |grep "error"
④日志试用more分页(分页查看,使用空格翻页):
cat -n log.file |grep "error" |more
⑤显示10行到50行:
cat filename | head -n 50 | tail -n +10
⑥根据日期查询日志:
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
先 grep ‘2014-12-17 16:17:20’ test.log 来确定日志中是否有该 时间点
4.当vim编辑文件时,没权限:
(r-w-x 分别代表可读,可写,可执行,7用2进制表示111,代表可读可写可执行,以此类推。)
chmod 755 xxx.yml
(7代表user,与文件所有者—即当前用户的权限;5代表group,与文件所有者同属一个用户组的其他用户的权限;最后的5代表others,其它用户组的权限)
chmod参数: u: user,权限对象为当前用户(这里是所有者) g:group,权限对象为所有者和组 o:other,权限对象为其他用户 r:read = 4,读权限 w:write = 2,写权限 e:execute = 1,执行权限 +:u/g/o与r/w/e组合使用,加入 -:删除 =:设置 4:仅读 5:仅读+执行 6:仅读+写 7:读+写+执行
5.解决解压windows包中文乱码:
unzip -O CP936 xxx.zip



