软件测试面试题04-Linux常用命令

linux 常用命令,这个是软件测试面试必问的问题,主要是因为目前大多数互联网项目都部署在linux服务器,如测试环境,部署的本地的服务器上,从开发提交完代码,测试同学就得知道如何将最新的代码部署到测试环境(jenkins一键部署,测试同学起码知道服务部署在哪,还有jenkins里的脚本也得懂),还要去验证服务是否真的部署好了,方法1:从前端的APP 或web端去入手,点击业务功能,查看是否有报错情况,或是使用自动化脚本跑一边全业务,根据结果验证环境是否部署好了 。 方法2:在linux服务器上查看服务的启动日志等,查看是否有报错。除了环境问题之外,测试同学还需要将项目报错的日志贴在bug里边,这就要求测试同学能精准的定位到问题,及报错日志。

所以测试人员必须会一些常用的命令,如下:

这是之前总结的命令,直接看这篇就行:https://zhuanlan.zhihu.com/p/161062427

除此之外,建议测试人员可以去学习一下shell命令,可以将常用的命令做成快捷脚本,这样就不用每次都输入一长串命令。

案例一:

脚本的目的:就是 传入不同的项目名称,就可以查看到不同项目当天的日志。

以下代码执行方式:

  脚本名称:cat_catalina_log.sh

  脚本运行方式:sh cat_catalina_log.sh tomcat-8108

脚本中的$1就是传入的参数:tomcat-8108

#!/bin/bash
#set -x
ls_date=`date +%Y-%m-%d`
tail -500f /home/tomcat/$1/logs/catalina.${ls_date}.out

案例二:

脚本的目的:想用脚本重启tomcat项目,通过传参的方式(参数:项目的名称) 。

以下代码执行方式:

  脚本名称:restartApp.sh

  脚本运行方式:sh restartApp.sh tomcat-8107

 

set -x 详细的日志输出

grep -v 是反向查找的意思,比如 grep -v restartApp 就是查找不含有 restartApp 字段的行

 

#!/bin/bash
set -x
#ps_result=`ps -ef | grep tomcat| grep $1`
#echo "${ps_result}"
 
echo -e "\n\n\n"
pids=`ps -ef| grep tomcat |grep $1 |grep -v 'grep'|grep -v 'restartApp.sh'|awk '{print $2}'`
count=0
pid_num=0
for pid in ${pids}
do
    pid_num=${pid}
    echo "pid_num:${pid_num}"
    #count=`expr ${count}+1`
    count=$(($count+1))
    echo  "count: ${count}"
done
 
if [[ $count -gt 1 ]]
then
    echo  "一个项目有两个进程 异常"
else
    kill -9 ${pids}
    echo "Kill ${pids}  Success!"
    #重启
    echo  "重启中。。。。。。。"
    sh /home/lifesea/$1/bin/startup.sh
fi
echo -e "\n\n\n"<br>

测试同学可以根据实际情况,将频繁使用的命令,让其自动化跑起来,稍微解放一下自己的双手。

 

上面的内容在之前的文章中都写过,这次是想将这些在测试面试过程中出现过的面试题整理成系列。

 

 

 

 

上一篇:Linux 云服务安装和部署rocketmq4.9.2版本


下一篇:linux系统之启动和关闭tomcat服务器