排查问题所用到的一些Linux命令实践(不定期更新。。)

时间:2021-06-10 17:40:57

一、前言

      线上问题排查可能是每个程序员都会经历的。在排查的过程中,往往会用到很多Linux命令,也会产生一些很实用的技巧。本博文通过分析一次线上问题排查的过程,把所有用到的命令串起来。每个Linux命令的参数往往会很多,下面对Linux命令的介绍,不会面面俱到,我只会介绍常用的或者对排查问题有帮助的参数。另外,本人也会不间断的进行更新,把自己学习到的一些实用的技巧分享出来。

二、Linux命令

     2.1  ssh命令

      首先,我们需要通过本机或者跳板机连接到到生产服务器上,这时候就会用到ssh命令

      实践:

     无用户(默认用当前用户)的ssh登录 :  ssh  172.16.23.45

        有用户的ssh登录 :  ssh  admin@172.16.23.45

        有用户指定端口的ssh登录 : ssh -p 17700 admin@172.16.23.45

        建立到目标主机的持久连接: ssh -MNf  admin@172.16.23.45

 

     2.2 cd命令

      进入远程服务器后,一定会用到的一个命令就是cd,用来进入日志目录

       实践:

            进入当前目录下的某个目录  cd  tmp

            以绝对路径进入某个目录     cd /etc/tmp

            回到用户目录                   cd ~

            回到上一个目录                cd ..

        扩展:当到需要进入的目录太深,每次都要进行好多cd,因此,可以使用ln命令生成一个软连接

                 ln -s  logs  /home/admin/cc/logs

                接下来,你就可以通过cd logs进入/home/admin/cc/logs 了

 

 

       2.3 ls命令

       进入指定目录后,很习惯的一件事就是用ls或者ll显示一下当前目录下的文件

       实践:

              ls -a   列出所有文件,包括隐藏文件

              ls -l   类似ll命令,会列出详细信息

              ls  -t  列出的文件按时间正向排序

              ls  -r  列出的文件反向排序

        我常常用 ls -alt  或者  ls -altr  查找最近时间变更的日志

       

       2.4 grep命令

         接下来,我们往往会用grep命令在某个日志搜索指定关键词

         实践:

           grep "test"  d.log   在d.log中查找所有含test的行

           grep "test"  d*       在所有以d开头的文件中查找含test的行

           grep "test"  a.log  b.log  c.log   在a.log  b.log  c.log中查找含test的行

           grep  -e  "[a-Z]\{5\}test"   a.log    在a.log中查找所有以5个字母开头以test结尾的字符串的行

           grep  "test" d.log -3   在d.log中查所有含test的行,并显示这些行紧跟的3行

 

         一般来说,grep会和cat   more  tail等命令联合用

           cat *.log | grep "test"     在所有log日志中搜索包含test的行

           more *.log | grep "test"  在所有log日志中逐步搜索包含test的行

           tail -100 test.log | grep "test"   在test.log的最后100行搜索test的行

 

         下面的命令是个比较实用的命令,可以统计出日志中全部的异常,并排序计算出异常出现的次数:

            grep -Eo "[a-Z]+Exception" *.log|sort|uniq -c

===================update in 2015-10-11======================